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

Нахождение двойного факториала заданного числа N - C++

Восстановить пароль Регистрация
 
azimjon-9595
-4 / 0 / 0
Регистрация: 03.01.2016
Сообщений: 5
03.01.2016, 20:16     Нахождение двойного факториала заданного числа N #1
Дано целое число N (> 0). Найти двойной факториал N:
N!! = N·(N–2)·(N–4)·…
(последний сомножитель равен 2, если N — четное, и 1, если N —
нечетное). Чтобы избежать целочисленного переполнения, вычислять это
произведение с помощью вещественной переменной и вывести его как
вещественное число.

Добавлено через 17 минут
решите
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5950 / 5555 / 1787
Регистрация: 18.12.2011
Сообщений: 14,196
Завершенные тесты: 1
03.01.2016, 20:48     Нахождение двойного факториала заданного числа N #2
C++
1
2
3
4
5
6
7
8
9
int fact2(int n)
{
    if(n < 0) // если пользователь ввел отрицательное число
        return 0; // возвращаем ноль
    if (n <= 1) // если пользователь ввел ноль,
        return 1; // возвращаем факториал от нуля
    // Во всех остальных случаях
    return n * fact(n - 2); // делаем рекурсию.
}
Источник
C++ нахождение факториала числа n с вводом из файла
Байт
 Аватар для Байт
13989 / 8820 / 1231
Регистрация: 24.12.2010
Сообщений: 15,979
03.01.2016, 20:53     Нахождение двойного факториала заданного числа N #3
Цитата Сообщение от azimjon-9595 Посмотреть сообщение
Чтобы избежать целочисленного переполнения, вычислять это
произведение с помощью вещественной переменной и вывести его как
вещественное число.
C++
1
2
3
4
5
6
7
8
9
double fact2(int n)
{
    if(n < 0) // если пользователь ввел отрицательное число
        return 0; // возвращаем ноль
    if (n <= 1) 
        return 1; 
    // Во всех остальных случаях
    return n * fact(n - 2); // делаем рекурсию.
}
SergioO
 Аватар для SergioO
89 / 178 / 61
Регистрация: 13.12.2015
Сообщений: 972
03.01.2016, 21:27     Нахождение двойного факториала заданного числа N #4
даже при N=100, N!! =100!! = (1*2*3*...*99*100)!, тк 10*20*...*90*100 уже даст 11 нулей в конец числа ), а это 1 00 000 000 000 и это малая часть числа, а 100 000 000 000! сто миллиардов факториал - дохринилиард. только перемножать блоками и писать в файл - никакого стандартного типа не хватит.
Yandex
Объявления
03.01.2016, 21:27     Нахождение двойного факториала заданного числа N
Ответ Создать тему
Опции темы

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