Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Grey5
2 / 2 / 3
Регистрация: 11.03.2010
Сообщений: 178
#1

Рассчитать факториал с помощью рекурсивной функции на спуске - C#

08.12.2013, 23:50. Просмотров 536. Ответов 3
Метки нет (Все метки)

Нужно расчитать факториал с помощью рекурсивной функции на спуске. Функция должна принимать один аргумент.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2013, 23:50
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Рассчитать факториал с помощью рекурсивной функции на спуске (C#):

Найти факториал с помощью вещественной переменной
Написать код программы на С#. Дано целое число N (> 0). Найти произведение N!...

Перевод рекурсивной функции с JavaScript
Уважаемые форумчане, встретил в книге листинг рекурсивной функции захотел...

Обнуляется счетчик в цикле foreach рекурсивной функции
Вызываю функцию: Передаю значение count = 0. private void...

С помощью рекурсивной функции рассчитать сумму всех двохзначних чисел
С помощью рекурсивной функции рассчитать сумму всех двохзначних чисел

Вычислить с использованием рекурсивной функции факториал
Вычислить с использованием рекурсивной функции факториала S = 1! + 4! + 7! +… +...

Вычислить факториал заданного числа при помощи рекурсивной функции
Разбирался с рекурсией и вот вдруг возникла проблема. При компиляции выдает...

3
rattrapper
foo();
861 / 565 / 219
Регистрация: 03.07.2013
Сообщений: 1,543
Записей в блоге: 2
08.12.2013, 23:57 #2
C#
1
2
3
4
5
6
static int fact(int i)
{
    if (i == 2) return 2;
    else if (i < 2) return 1;
    else return i * fact(i - 1);
}
0
Psilon
Master of Orion
Эксперт .NET
5981 / 4834 / 901
Регистрация: 10.07.2011
Сообщений: 14,439
Записей в блоге: 5
Завершенные тесты: 4
09.12.2013, 08:53 #3
rattrapper, из вашего кода следует
а)
C#
1
2
3
4
5
if (a == 2)
return 2;
if (a == 1)
return 1;
...
при этом забываем, что факториал < 0 не определен

Добавлено через 1 минуту
rattrapper,
C#
1
2
3
4
5
6
7
8
9
10
static int Fact(int n)
{
    if (i < 0) 
       throw new ArgumentException("n");
    if (n == 0)
       return 1;
    if (n <= 2) 
       return n;
    return n * fact(n - 1);
}
Добавлено через 1 минуту
rattrapper, либо как вариант сделать uint (хотя тут больше подойдет byte, факториал больше 255 вряд ли получится посчитать). И да, возвращаемое значение в свою очередь лучше long, или даже double
1
rattrapper
foo();
861 / 565 / 219
Регистрация: 03.07.2013
Сообщений: 1,543
Записей в блоге: 2
09.12.2013, 17:52 #4
Цитата Сообщение от Psilon Посмотреть сообщение
при этом забываем, что факториал < 0
помнил, но очень уж лень было выбрасывать исключение
Цитата Сообщение от Psilon Посмотреть сообщение
либо как вариант сделать uint (хотя тут больше подойдет byte, факториал больше 255 вряд ли получится посчитать). И да, возвращаемое значение в свою очередь лучше long, или даже double
а вот об этом сам не подумал, очень толковая идея
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2013, 17:52
Привет! Вот еще темы с решениями:

С помощью рекурсивной функции вычислить сумму
Дано натуральное n, действительные a1,a2,...,an.С помощью рекурсивной функции...

Поиск минимума с помощью рекурсивной функции
#include&lt;iostream&gt; #include &lt;time.h&gt; using namespace std; int mina(int...

Реализовать цикл while с помощью рекурсивной функции
Здравствуйте, товарищи форумчане! Дошел до изучения макросов, необходимо...

Найти n-ый член последовательности с помощью рекурсивной функции
18.Найти n-ый член последовательности: x1 = 2, x2 = 5, x3 = 8, … xn = xn-1 + 3,...


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

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

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