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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 51, средняя оценка - 4.92
generation472
19 / 19 / 2
Регистрация: 04.11.2011
Сообщений: 555
Записей в блоге: 1
#1

факториал в С++ - C++

12.02.2012, 11:36. Просмотров 6800. Ответов 15
Метки нет (Все метки)

Как найти факториал с помощью рекурсивной функции?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2012, 11:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос факториал в С++ (C++):

Описать рекурсивные функции вещественного типа, вычисляющие факториал и двойной факториал заданного числа - C++
Описать рекурсивные функции Fact(N) и Fact2(N) вещественного типа, вычисляющие значения факториала N! и двойного факториала N!!...

С++ Факториал - C++
Надо написать программку на С++ которая вычисляет факториал числа n (факториал обозначается как n!). числа n в диапазоне от 1 до 12...

Факториал - C++
Здравствуйте Всем!!! Меня зовут Наталья. Помогите решить задание на С++: Дано натуральное число n; найти n!. Использовать программу,...

Факториал с++ - C++
1. Ввести n элементов одномерного массива; 2. Вычислить указанное выражение; 3. Вывести на экран значение указанного выражения.

Факториал - C++
Как написать программу для вычисления n факториал

Факториал - C++
Помогите написать программу: Составить функцию, которая вычисляет сумму К слагаемых. В вызывающей функции main() организовать контроль...

15
vladislavchick
35 / 35 / 1
Регистрация: 22.05.2010
Сообщений: 107
12.02.2012, 11:38 #2
C++
1
2
3
4
unsigned long fact(int x) {
    if (x == 0) return 1;
    return x * fact(x - 1);
}
1
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
12.02.2012, 11:39 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
 
long Factorial (int n)
{
    if (n==0) return 1;
    else return Factorial(n-1)*n;
}
 
int main()
{
    int n;
    std:: cin >> n;
    std:: cout << Factorial(n) << "\n";
    system ("pause");
    return 0;
}
1
generation472
19 / 19 / 2
Регистрация: 04.11.2011
Сообщений: 555
Записей в блоге: 1
12.02.2012, 11:41  [ТС] #4
ого спс за быстрый ответ
0
агерон
268 / 267 / 33
Регистрация: 12.10.2009
Сообщений: 1,061
12.02.2012, 12:18 #5
бесконечный стек только у господа бога, рекурсию нужно использовать с умом не забывай
1
-=ЮрА=-
Заблокирован
Автор FAQ
12.02.2012, 12:36 #6
Цитата Сообщение от generation472 Посмотреть сообщение
Как найти факториал с помощью рекурсивной функции?
- вот так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
 
unsigned long fact(unsigned long val)
{
    unsigned long ret = val;
    if(0 < (val = val - 1))
        ret *= fact(val);
    return ret;
}
 
int main()
{
    unsigned long num;
    while(true)
    {
        cout<<"Enter num  : ";
        cin>>num;
        cout<<"Recurs fact: "<<fact(num)<<endl;
    }
    return 0;
}
И никаких 2 точек выхода в рекурсивной функции, как у всех в данном топике
1
Миниатюры
факториал в С++  
CheshireCat
Эксперт С++
2893 / 1242 / 78
Регистрация: 27.05.2008
Сообщений: 3,379
12.02.2012, 12:50 #7
Только нужна небольшая модификация:
C++
1
2
3
4
5
6
7
unsigned long fact(unsigned long val)
{
        unsigned long ret = val ? val : 1;
        if(0 < val && 0 < (val = val - 1))
                ret *= fact(val);
        return ret;
}
2
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
12.02.2012, 12:57 #8
Цитата Сообщение от агерон Посмотреть сообщение
есконечный стек только у господа бога, рекурсию нужно использовать с умом не забывай
Факториал определён только для целых неотрицательных чисел.
1
-=ЮрА=-
12.02.2012, 13:00
  #9

Не по теме:

Цитата Сообщение от CheshireCat Посмотреть сообщение
if(0 < val
- CheshireCat, unsigned long не о чём не говорит???Например беззнаковое целое!Модификатор типа unsigned указывает, что переменная принимает неотрицательные значения если ты вдруг забыл...

1
CheshireCat
Эксперт С++
2893 / 1242 / 78
Регистрация: 27.05.2008
Сообщений: 3,379
12.02.2012, 13:33 #10
-=ЮрА=-, я ни о чем не забыл. А вот ты - явно забыл посчитать в твоем коде 0!. Попробуй ввести 0, увидишь результат.
1
Jupiter
12.02.2012, 13:52
  #11

Не по теме:

Цитата Сообщение от Dani Посмотреть сообщение
только для целых неотрицательных чисел.
ну это грубо сказано
http://www.wolframalpha.com/input/?i=%280.5%29%21

3
denys_l
52 / 52 / 4
Регистрация: 26.09.2011
Сообщений: 186
12.02.2012, 13:55 #12
Цитата Сообщение от CheshireCat Посмотреть сообщение
-=ЮрА=-, я ни о чем не забыл. А вот ты - явно забыл посчитать в твоем коде 0!. Попробуй ввести 0, увидишь результат.
ага.. так и есть
0
Сtrl
139 / 129 / 3
Регистрация: 19.07.2011
Сообщений: 184
12.02.2012, 13:58 #13
Зачем так усложнять?
C++
1
2
3
4
unsigned long fact(unsigned long n)
{
   return n ? n * fact(n - 1) : 1;
}
2
Dani
12.02.2012, 16:21
  #14

Не по теме:

Цитата Сообщение от Jupiter Посмотреть сообщение
Не по теме:
Сообщение от Dani
только для целых неотрицательных чисел.
ну это грубо сказано
http://www.wolframalpha.com/input/?i=%280.5%29%21
Ну там уже гамма функция А факториал - произведение ЦЕЛЫХ чисел от 1 до n, поэтому... Факториал - факториал, Гамма функция - гамма функция, но вещь интересная, спасибо за ссыль

0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
12.02.2012, 16:28 #15
Цитата Сообщение от Jupiter Посмотреть сообщение
ну это грубо сказано
Нет. Так и есть
Факториал определён только для целых неотрицательных чисел.
http://ru.wikipedia.org/wiki/%D0%A4%...B8%D0%B0%D0%BB
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2012, 16:28
Привет! Вот еще темы с ответами:

факториал - C++
найти число нулей в конце факториала числа N по основанию каждого множителя K (1&lt;=N&lt;=1000000000, 2&lt;=K&lt;=1000) #include &lt;iostream&gt; ...

Факториал - C++
Пожалуйсто, помогите написать прогу на Си, которая вичисляла бы 100! (факториал) выводя всё на экран!

Факториал (n-1)! - C++
Помогите, пожалуйста, написать факториал (n-1)! очень надо

Факториал - C++
Дано натуральное число n; найти n!. Использовать программу, включающую рекурсивную процедуру вычисления n!


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
12.02.2012, 16:28
Ответ Создать тему
Опции темы

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