Как вычислить факториал 100 на С++
-
гость
Как вычислить факториал 100 на С++
-
petun
- Новоприбывший
- Сообщения: 7
- Зарегистрирован: Пн фев 06, 2006 12:44
Re: Как вычислить факториал 100 на С++
Код: Выделить всё
$result = 1;
for ($i=0; $i<=100; $i++) {
$result = $result * $i;
}
-
Дыбра
- Добрый Админ
- Сообщения: 5435
- Зарегистрирован: Чт мар 31, 2005 16:54
- Благодарил (а): 10 раз
- Поблагодарили: 6 раз
Re: Как вычислить факториал 100 на С++
Внимательнее нужно смотреть на тип переменной в которой будет храниться значение. Боюсь, что даже в double он может не уместиться.
Но вообще для вычисления факториала удобнее использовать рекурсию. Но понять ее сложнее
-
Гость
Re: Как вычислить факториал 100 на С++
Этот код на PHP?petun писал(а):наверное вот так.. (извиняюсь за синтаксис, уже не все помню из си)....
в итоге в переменной $result будет хранится результат. )Код: Выделить всё
$result = 1; for ($i=0; $i<=100; $i++) { $result = $result * $i; }
Эх и эх.. Если бы всё было так просто... Вы пробовали запускать этот код на С++? Число в факториале 100 настолько велико, что непременно произойдёт переполнение и программа вывалится в ошибку... Одной переменной int явно недостаточно для хранения столь больших чисел... ((
-
Aleksiem
- Свой в доску
- Сообщения: 312
- Зарегистрирован: Пн фев 20, 2006 1:15
Re: Как вычислить факториал 100 на С++
Наверное предложу немного скорректированный вариант
Код: Выделить всё
$result = 1;
for ($i=2; $i<=100; $i++) {
$result = $result * $i;
}Код: Выделить всё
longint Fact(int a)
{
if (a==1) return 1;
return a*Fact(a-1);
}
Код: Выделить всё
longint Fact(int a)
{
return (a==1)?1:a*Fact(a-1);
}
-
Dancer
- Новоприбывший
- Сообщения: 4
- Зарегистрирован: Чт янв 14, 2010 14:37
Re: Как вычислить факториал 100 на С++
Даже longint (но как я понимаю это из Паскаля) здесь уже не поможет.
Так как, 100! это что-то там в 150 какой-то степени.
до переполнения, можно вычислять 12! далее уже нужно делать специальные алгоритмы и представлять число в виде элементов массива, или как строки.
-
Дыбра
- Добрый Админ
- Сообщения: 5435
- Зарегистрирован: Чт мар 31, 2005 16:54
- Благодарил (а): 10 раз
- Поблагодарили: 6 раз
Re: Как вычислить факториал 100 на С++
-
Гость
Re: Как вычислить факториал 100 на С++
- скорее всего, единственный выход...Dancer писал(а):делать специальные алгоритмы и представлять число в виде элементов массива, или как строки.
-
LS
- Свой в доску
- Сообщения: 388
- Зарегистрирован: Ср авг 06, 2008 15:06
