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

Вычисление факториала. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 38, средняя оценка - 4.66
tanderstorm1
0 / 0 / 0
Регистрация: 20.01.2010
Сообщений: 11
20.01.2010, 19:24     Вычисление факториала. #1
Помогите пожалуйста решить задачу!! Язык С++
Дано натуральное число n. Написать программу, которая вычисляет факториал неотрицательных целых чисел n (т.е. число целое и больше 0). Формула вычисления факториала приведена ниже. n! = 1*2*3*....*n, (формула вычисления факториала числа n)
0! = 1 (факториал 0 равен 1 (по определению факториала))
При этом необходимо использовать while
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2010, 19:24     Вычисление факториала.
Посмотрите здесь:

Си, вычисление факториала C++
C++ Вычисление факториала числа
Вычисление факториала C++
C++ Вычисление факториала
C++ Ввод и вычисление факториала.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Darky
Быдлокодер
 Аватар для Darky
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
20.01.2010, 19:30     Вычисление факториала. #2
Факториал больших чисел? Или это фигня по типу
C++
1
2
3
4
5
6
int i=1;
while (i!=n)
{
  pr*=i;
  i++;
}
tanderstorm1
0 / 0 / 0
Регистрация: 20.01.2010
Сообщений: 11
20.01.2010, 19:32  [ТС]     Вычисление факториала. #3
что то вроде этого. но только как этот код полностью выглядит???
Radjuk
 Аватар для Radjuk
134 / 68 / 12
Регистрация: 10.10.2009
Сообщений: 187
20.01.2010, 19:52     Вычисление факториала. #4
вот в виде функции:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int Fact(int a);
 
void main()
{
clrscr();int a;
cin>>a;
cout<<Fact(a);
getch();
}
 
int Fact(int a)
{
if(a == 1)
return a;
else return Fact(a-1)*a;
}
tanderstorm1
0 / 0 / 0
Регистрация: 20.01.2010
Сообщений: 11
20.01.2010, 19:55  [ТС]     Вычисление факториала. #5
спасибки конечно!! Но, в том то и проблема что мне необходимо использовать C++
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
21.01.2010, 10:46     Вычисление факториала. #6
Radjuk, НИКОГДА не используй рекурсию для вычисления факториала.

tanderstorm1, вот код
C++
1
2
3
4
5
6
7
int fact(int n)
{
    int f(1);
    while(n > 1)
        f *= n--;
    return f;
}
Day
 Аватар для Day
1149 / 954 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
21.01.2010, 13:48     Вычисление факториала. #7
C является подмножеством C++
Т.е. формально задача решена.
В том смысле, что если исходнику дать расширение cpp, то все будет ОК
Но как для такой ерунды использовать специальные средства C++ - ума не приложу
Может быть так
Код
  f = 1;
  for(int i=2; i<=n; i++)  // Вот это в чистом С не допустимо
     f *= i;
Андрейка
408 / 212 / 22
Регистрация: 25.03.2009
Сообщений: 715
21.01.2010, 14:03     Вычисление факториала. #8
tanderstorm1, таких исходников в сети насчёт факториала море (и рекурсия и for и while) копипасть код
M128K145, и радуйся)
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1331 / 864 / 50
Регистрация: 02.01.2009
Сообщений: 2,622
Записей в блоге: 1
21.01.2010, 14:13     Вычисление факториала. #9
Цитата Сообщение от M128K145 Посмотреть сообщение
НИКОГДА не используй рекурсию для вычисления факториала.
Обоснуй.
odip
Эксперт C++
 Аватар для odip
7225 / 3287 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
21.01.2010, 20:20     Вычисление факториала. #10
Обоснуй.
Использовать можно, но нет никакого смысла - просто считать будет медленнее и памяти жрать больше.
Radjuk
 Аватар для Radjuk
134 / 68 / 12
Регистрация: 10.10.2009
Сообщений: 187
21.01.2010, 20:27     Вычисление факториала. #11
надеюсь меня растреливать за ето не будут?
odip
Эксперт C++
 Аватар для odip
7225 / 3287 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
21.01.2010, 20:46     Вычисление факториала. #12
надеюсь меня растреливать за ето не будут?
C
1
2
3
4
5
6
int Fact(int a)
{
if(a == 1)
return a;
else return Fact(a-1)*a;
}
Расстреливать будем - твой код неправильно считает !
А именно - значение Fact(0).
Radjuk
 Аватар для Radjuk
134 / 68 / 12
Регистрация: 10.10.2009
Сообщений: 187
21.01.2010, 21:07     Вычисление факториала. #13
ну да .... там должно было быть

C
1
2
if(a==0)
return a;
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
21.01.2010, 21:15     Вычисление факториала. #14
Radjuk, 0! = 1! = 1, поэтому
C
1
return 1;
Radjuk
 Аватар для Radjuk
134 / 68 / 12
Регистрация: 10.10.2009
Сообщений: 187
21.01.2010, 21:52     Вычисление факториала. #15
лажанулся по полной
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
22.01.2010, 06:52     Вычисление факториала. #16
Darky, там сказано вайлом, а ты что делаешь?
C++
1
2
3
4
5
6
7
8
9
int Factorial(int n)
{
 int Result=1;
 while (n>0)
 { 
  Result*=n;
 }
 return Result;
}
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
22.01.2010, 09:31     Вычисление факториала. #17
taras atavin, а где ты n изменяешь? Ошибка в коде
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
22.01.2010, 09:33     Вычисление факториала. #18
Да, точно:
C++
1
2
3
4
5
6
7
8
9
10
int Factorial(int n)
{
 int Result=1;
 while (n>0)
 { 
  Result*=n;
  --n;
 }
 return Result;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2010, 16:14     Вычисление факториала.
Еще ссылки по теме:

C++ вычисление факториала
C++ Вычисление факториала
C++ Вычисление факториала

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

Или воспользуйтесь поиском по форуму:
tanderstorm1
0 / 0 / 0
Регистрация: 20.01.2010
Сообщений: 11
23.01.2010, 16:14  [ТС]     Вычисление факториала. #19
Всем огромное спасибо!!! Даже не думал что столько хороших людей на этом форуме!!!
Yandex
Объявления
23.01.2010, 16:14     Вычисление факториала.
Ответ Создать тему
Опции темы

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