Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/54: Рейтинг темы: голосов - 54, средняя оценка - 4.59
 Аватар для generation472
24 / 24 / 7
Регистрация: 04.11.2011
Сообщений: 566
Записей в блоге: 1

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

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

Студворк — интернет-сервис помощи студентам
Как найти факториал с помощью рекурсивной функции?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.02.2012, 11:36
Ответы с готовыми решениями:

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

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

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

15
35 / 35 / 8
Регистрация: 22.05.2010
Сообщений: 107
12.02.2012, 11:38
C++
1
2
3
4
unsigned long fact(int x) {
    if (x == 0) return 1;
    return x * fact(x - 1);
}
1
1406 / 648 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
12.02.2012, 11:39
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
24 / 24 / 7
Регистрация: 04.11.2011
Сообщений: 566
Записей в блоге: 1
12.02.2012, 11:41  [ТС]
ого спс за быстрый ответ
0
 Аватар для агерон
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
12.02.2012, 12:18
бесконечный стек только у господа бога, рекурсию нужно использовать с умом не забывай
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
12.02.2012, 12:36
Цитата Сообщение от 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
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
12.02.2012, 12:50
Только нужна небольшая модификация:
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
1406 / 648 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
12.02.2012, 12:57
Цитата Сообщение от агерон Посмотреть сообщение
есконечный стек только у господа бога, рекурсию нужно использовать с умом не забывай
Факториал определён только для целых неотрицательных чисел.
1
12.02.2012, 13:00

Не по теме:

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

Миниатюры
факториал в С++  
1
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
12.02.2012, 13:33
-=ЮрА=-, я ни о чем не забыл. А вот ты - явно забыл посчитать в твоем коде 0!. Попробуй ввести 0, увидишь результат.
1
12.02.2012, 13:52
Лучший ответ Сообщение было отмечено как решение

Решение

Не по теме:

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

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

Не по теме:

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

0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
12.02.2012, 16:28
Цитата Сообщение от Jupiter Посмотреть сообщение
ну это грубо сказано
Нет. Так и есть
Факториал определён только для целых неотрицательных чисел.
http://ru.wikipedia.org/wiki/%... 0%B0%D0%BB
1
35 / 35 / 8
Регистрация: 22.05.2010
Сообщений: 107
12.02.2012, 21:34
Точка выхода одна.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.02.2012, 21:34
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru