#2 16.05.10 12:50
Re: [c++] Как высчитать факториал числа
Код::
unsigned long factorial(unsigned int n)
{
if(n <= 1)
return 1;
unsigned long f = 1;
for(unsigned int i = 2; i <= n; ++i)
f *= i;
return f;
}Код::
unsigned long fact(unsigned int n)
{
if(n <= 1)
return 1;
return n * fact(n - 1);
}Offline
#3 16.05.10 13:25
Re: [c++] Как высчитать факториал числа
Это как просто вводить в Си? Ничего не понял.... я ввожу это все, а он мне ошибки выдает:
Код::
#include <math.h>
#include <iostream.h>
void main()
{
int n;
unsigned long factorial(unsigned int n)
{
if(n <= 1)
return 1;
unsigned long f = 1;
for(unsigned int i = 2; i <= n; ++i)
f *= i;
return f;
}
}Я не могу понять как то исполнить?
Offline
#6 16.05.10 13:59
Re: [c++] Как высчитать факториал числа
Народ, я подумал...
У меня лаба по циклам(вот там те проги которые в другом посте), значит там запары с факториалом не должно быть! Получается , есть какая то функция, которая вычисляет факториал... Я вот щас дам выражение... А моя догадка: Может стоить организовать цикл по двум переменным?? Или еще как то....
Но выражение такое:
"Значок суммы от k = 1 до n"(x+cos(k*x))/k)*k! Вот!
Offline
#10 16.05.10 15:13
#11 16.05.10 15:30
#12 16.05.10 16:05
#13 16.05.10 22:19
#14 17.05.10 01:51
Re: [c++] Как высчитать факториал числа
Wanseg написал(а):
Как можно вычислить факториал числа?)
спросить у препода по мат. анализу что такое факториал, нарисовать блок схему алгоритма его вычисления.
дальше заменишь каждый блок блок-схемы соответствующим блоком кода.
все просто как коллайдер
Offline
#15 17.05.10 01:59
#16 17.05.10 10:39
Re: [c++] Как высчитать факториал числа
Wanseg, простого перемножения для вычисления факториала недостаточно... тебе тупо не хватит размера типа... для этого есть мат.анализ, логарифмы и их свойства...
на заметку: факториал числа n - это произведение целых чисел от 1 до n... в самом простом случае используется итеративный метод вычисления... т.е. в цикле от 1 до n умножаешь результат на итерационное значение...
Offline
#17 17.05.10 17:55
Re: [c++] Как высчитать факториал числа
Wanseg написал(а):
Как можно вычислить факториал числа?)
Если из инструментария только С/С++
1) Итеративно
2) Рекурсивно
3) Длинная арифметика
4) Формула Стирлинга
5) Логарифм, экспонента, гамма-функция
6) Записать значения факториалов в файл/базу и читать оттуда
(Это то, что навскидку вспомнил)
Все факториалы хороши - выбирай на вкус.
Offline
#18 17.05.10 18:23
#19 17.05.10 20:08
Re: [c++] Как высчитать факториал числа
Jaguar написал(а):
интересно как вычислить таким способом факториал миллиона :) памяти-то хватит?
Скорее вывалится с переполнением стека.
Но для небольших чисел(в С/С++) - вполне. А в функциональных языках - чем не вариант?
З.Ы. Хотя факториал миллиона - по времени долговато будет.
Исправлено Revenger (17.05.10 20:09)
Offline
#20 17.05.10 21:58
#21 17.05.10 22:20
#22 17.05.10 23:25
#23 17.05.10 23:28
Re: [c++] Как высчитать факториал числа
Jaguar написал(а):
делалась обработка плавающей точки через логарифмы...
Jaguar, ну это вполне возможно. Верю)))
Я говорил о точном вычислении факториала(с длинной арифметикой). На современных машинах, да с SSE - должно посчитаться быстро, но все-таки не совсем быстро.
З.Ы. Лучше уж Haskel или Lisp.
Offline
#24 18.05.10 16:19
Re: [c++] Как высчитать факториал числа
Revenger - ты доказал, что у тебя самый длинный член из всех членов, хозяева которых отписывались на этой ветке. Только это ни как не помогло Wanseg.
Wanseg - оно тебе надо было идти на техническую специальность, преподавателей раздражать....
Offline

