Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Thinker
Эксперт C++
4219 / 2193 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
#1

Таблица факториалов - C++

02.09.2011, 11:01. Просмотров 1028. Ответов 4
Метки нет (Все метки)

На сайте
http://www.habit.ru/33/348.html
приводится таблица факториалов, но не все значения (как мне кажется) в ней правильны, например, 50! Или моя программа не так считает. Кто-нибудь может проверить правильность 50!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.09.2011, 11:01     Таблица факториалов
Посмотрите здесь:

C++ Вывод таблицы факториалов
C++ вычислить массив факториалов
Сумма факториалов от 1 до N C++
C++ таблица факториалов. цикл
Сумма факториалов C++
C++ Сумма факториалов
Нахождение факториалов в степени C++
C++ Сумма факториалов
Сумма факториалов C++
Сумма факториалов от 1 до N C++
C++ Вычислить сумму факториалов 1!+2!+3!
C++ Сумма факториалов

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
02.09.2011, 11:04     Таблица факториалов #2
Python
1
2
3
from math import factorial
 
print factorial(50)
30414093201713378043612608166064768844377641568960512000000000000
Так что на том сайте все верно.
Thinker
Эксперт C++
4219 / 2193 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
02.09.2011, 11:08  [ТС]     Таблица факториалов #3
Все, нашел ошибку, спасибо
diagon
Higher
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
02.09.2011, 11:10     Таблица факториалов #4
У меня 55! тоже нормально посчитало.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
#include <iostream>
#include <sstream>
#include <vector>
#define base 1000000000
 
void writelong(std::vector<int> vec){
    printf ("%d", vec.empty() ? 0 : vec.back());
    for (int i=(int)vec.size()-2; i>=0; --i)
        printf ("%09d", vec[i]);
}
 
std::vector<int> smult(std::vector<int> a, int b){
    int carry = 0;
    for (size_t i=0; i<a.size() || carry; ++i) {
        if (i == a.size())
            a.push_back (0);
        long long cur = carry + a[i] * 1ll * b;
        a[i] = int (cur % base);
        carry = int (cur / base);
    }
    while (a.size() > 1 && a.back() == 0)
        a.pop_back();
    return a;
}
 
int main(){
    int b;
    std::cin >> b;
    std::vector<int> a(1,1);
    for (int i = 1; i <= b; i++)
        a=smult(a,i);
    writelong(a);
    return 0;
}
Опоздал =(
Thinker
Эксперт C++
4219 / 2193 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
02.09.2011, 11:14  [ТС]     Таблица факториалов #5
Цитата Сообщение от diagon Посмотреть сообщение
У меня 55! тоже нормально посчитало.
Спасибо, теперь тоже все правильно. У меня как и у вас тоже система счисления- степень числа 10, очень удобно
Yandex
Объявления
02.09.2011, 11:14     Таблица факториалов
Ответ Создать тему
Опции темы

Текущее время: 13:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru