Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/46: Рейтинг темы: голосов - 46, средняя оценка - 4.83
22 / 22 / 7
Регистрация: 04.11.2011
Сообщений: 566
Записей в блоге: 1
1

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

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

Как найти факториал с помощью рекурсивной функции?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.02.2012, 11:36
Ответы с готовыми решениями:

Факториал. Определить максимальное число, факториал которого хранится в переменной типа int
/*Доброго времени суток ! Задача такова: Пользователь вводит число с клавы. Вывести на экран...

Факториал некторого числа записан в eax, а нужно вывести этот факториал в ebx
Хочу сделать код факториал некторого числа записан в eax, а нужно вывести этот факториал в ebx и...

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

Факториал
Здравствуйте, очень нужна помощь. Есть задача, в которой считается факториал,но только для чисел...

15
35 / 35 / 8
Регистрация: 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
1402 / 644 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
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
22 / 22 / 7
Регистрация: 04.11.2011
Сообщений: 566
Записей в блоге: 1
12.02.2012, 11:41  [ТС] 4
ого спс за быстрый ответ
0
443 / 298 / 63
Регистрация: 12.10.2009
Сообщений: 1,161
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
Эксперт С++
2922 / 1271 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
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
1402 / 644 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
12.02.2012, 12:57 8
Цитата Сообщение от агерон Посмотреть сообщение
есконечный стек только у господа бога, рекурсию нужно использовать с умом не забывай
Факториал определён только для целых неотрицательных чисел.
1
-=ЮрА=-
12.02.2012, 13:00
  #9

Не по теме:

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

1
Эксперт С++
2922 / 1271 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
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
53 / 53 / 10
Регистрация: 26.09.2011
Сообщений: 186
12.02.2012, 13:55 12
Цитата Сообщение от CheshireCat Посмотреть сообщение
-=ЮрА=-, я ни о чем не забыл. А вот ты - явно забыл посчитать в твоем коде 0!. Попробуй ввести 0, увидишь результат.
ага.. так и есть
0
144 / 134 / 8
Регистрация: 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
Эксперт С++
3644 / 1376 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
12.02.2012, 16:28 15
Цитата Сообщение от Jupiter Посмотреть сообщение
ну это грубо сказано
Нет. Так и есть
Факториал определён только для целых неотрицательных чисел.
http://ru.wikipedia.org/wiki/%... 0%B0%D0%BB
1
35 / 35 / 8
Регистрация: 22.05.2010
Сообщений: 107
12.02.2012, 21:34 16
Точка выхода одна.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.02.2012, 21:34

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

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

Факториал
Добрый вечер. Помогите найти ошибку в коде задачи. Задача: 1 + 1/(1!) + 1/(2!) + 1/(3!) + … +...

Факториал и 2^n
1) Описать вычисление факториала через list comprehension 2) Описать функцию возведения 2 в...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru