Официальный сайт студ.городка НГТУ
Программирование и БД » [c++] Как высчитать факториал числа 

#1  16.05.10 12:14

[c++] Как высчитать факториал числа

Как можно вычислить факториал числа?)

Offline

#2  16.05.10 12:50

$up
Профиль

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

#4  16.05.10 13:31

Re: [c++] Как высчитать факториал числа

ох как все тяжело то...
Wanseg, а зачем тебе это нужно?

Offline

#5  16.05.10 13:37

Re: [c++] Как высчитать факториал числа

Это лабораторная у меня.... Задание такое что бы прога считала  суммы.... А в суммированном выражении стоит факториал)


( 0 )   получается

Offline

#6  16.05.10 13:59

Re: [c++] Как высчитать факториал числа

Народ, я подумал...
У меня лаба по циклам(вот там те проги которые в другом посте), значит там запары с факториалом не должно быть! Получается , есть какая то функция, которая вычисляет факториал... Я вот щас дам выражение... А моя догадка: Может стоить организовать цикл по двум переменным?? Или еще как то....
Но выражение такое:

"Значок суммы от k = 1 до n"(x+cos(k*x))/k)*k! Вот!

Offline

#7  16.05.10 14:04

$up
Профиль

Re: [c++] Как высчитать факториал числа

Wanseg, советую для начала взять книжку по си и прочитать про функции, синтаксис языка и т.п.
Вижу желание у тебя есть но знания на нуле.

Offline

#8  16.05.10 14:12

Re: [c++] Как высчитать факториал числа

Ок! Я и так читаю Подбельского ) Только я пока не встречал там ничего про факториал! А тут вроде задание легкое если бы не факториальчик))

Offline

#9  16.05.10 14:15

Re: [c++] Как высчитать факториал числа

А кстати это не мой профиль.... Это парня с комнаты) Мой настоящий ник Yaha_KoD

Offline

#10  16.05.10 15:13

$up
Профиль

Re: [c++] Как высчитать факториал числа

у Подбельского про факториал и не найдёшь. Он описывает средства языка а не алгоритмы.

алгоритм (вычисление факториала) можно реализовать на любом языке

Offline

#11  16.05.10 15:30

Re: [c++] Как высчитать факториал числа

$up написал(а):

у Подбельского про факториал и не найдёшь

Зато можно найти у Гугля. причем не только про факориал, но и про его реализацию - хоть на С, хоть на Lisp'е.

Offline

#12  16.05.10 16:05

$up
Профиль

Re: [c++] Как высчитать факториал числа

Revenger, у автора, видимо, интернета нет, иначе бы он такие вопросы не задавал.

Offline

#13  16.05.10 22:19

Re: [c++] Как высчитать факториал числа

Ну блин. У меня в школе тоже интернета не было - в библиотеку ходил)))
А вообще не особо тяжко отвечать на такие вопросы - авось чего и получится у человека. Только бы троллем это человек не оказался.

Offline

#14  17.05.10 01:51

Re: [c++] Как высчитать факториал числа

Wanseg написал(а):

Как можно вычислить факториал числа?)

спросить у препода по мат. анализу что такое факториал, нарисовать блок схему алгоритма его вычисления.
дальше заменишь каждый блок блок-схемы соответствующим блоком кода.
все просто как коллайдер

Offline

#15  17.05.10 01:59

Re: [c++] Как высчитать факториал числа

зачем думать, когда можно спросить и за тебя все сделают...

Offline

#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

Re: [c++] Как высчитать факториал числа

Revenger написал(а):

2) Рекурсивно

интересно как вычислить таким способом факториал миллиона :) памяти-то хватит?

Offline

#19  17.05.10 20:08

Re: [c++] Как высчитать факториал числа

Jaguar написал(а):

интересно как вычислить таким способом факториал миллиона :) памяти-то хватит?

Скорее вывалится с переполнением стека.
Но для небольших чисел(в С/С++) - вполне. А в функциональных языках - чем не вариант?
З.Ы. Хотя факториал миллиона - по времени долговато будет.

Исправлено Revenger (17.05.10 20:09)

Offline

#20  17.05.10 21:58

Re: [c++] Как высчитать факториал числа

Revenger написал(а):

Хотя факториал миллиона - по времени долговато будет.

на 166MMX программа на бейсике 12 лет назад высчитывала всего за пол часа :)

Offline

#21  17.05.10 22:20

Re: [c++] Как высчитать факториал числа

Jaguar написал(а):

на 166MMX программа на бейсике 12 лет назад высчитывала всего за пол часа :)

точность, пожалуйста, укажите

Offline

#22  17.05.10 23:25

Re: [c++] Как высчитать факториал числа

сейчас уже не помню... делалась обработка плавающей точки через логарифмы... задача стояла не в точности, а в написании примера программы на определенном языке...

Offline

#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

Программирование и БД » [c++] Как высчитать факториал числа 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.031 сек.
Выполнено 11 запросов.