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

Вычислить факториал натурального числа n из отрезка [1;20] - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создать программу, которая будет сообщать на экран, сколько корней имеет квадратное уравнение ax²+bx+c=0. http://www.cyberforum.ru/cpp-beginners/thread614689.html
Создать программу, которая будет сообщать на экран, сколько корней имеет квадратное уравнение ax²+bx+c=0. Коэффициенты a, b и c пользователь вводит с клавиатуры. Пример оформления программы: Введите...
C++ Округление и вывод вещественное число Создать программу, округляющую и выводящую на экран вещественное число, введенное пользователем с клавиатуры, в виде целого числа. Например, если пользователь ввёл число -3.2, то на экран выводится... http://www.cyberforum.ru/cpp-beginners/thread614686.html
C++ Eсть хоть какие-то идеи?
Построить чертеж: «В прямоугольном параллелепипеде провести перерез, который проходит через сторону нижней основы и противоположную сторону верхней основы.
C++ Ввести символ и вывести сообщение
Ввести символ и вывести сообщение: -«красный», если введена либо большая, либо маленькая русская буква «к»; -«синий», если введена либо большая, либо маленькая русская буква «с»; -«зеленый», если...
C++ Найти и вывести на экран наибольший нетривиальный делитель числа http://www.cyberforum.ru/cpp-beginners/thread614640.html
Пользователь вводит с клавиатуры натуральное число, найти и вывести на экран наибольший нетривиальный (т.е. не равный введённому числу или единице) делитель числа, либо сообщить, что число простое....
C++ Как правильно закрыть процесс Я пишу программу мониторинга Для этого использую драйвер и в драйвере подменяю CreateSection Как правильно закрыть процесс _asm{ //save execution contect and calls check() -the rest depends... подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
27.06.2012, 14:47
Цитата Сообщение от MrGluck Посмотреть сообщение
А я бы решал так:
unsigned long long factorial(unsigned long long n)
{
* * return !n ? 1 : n * factorial(n - 1);
}
- таже рекурсия только компактней записанная ввиду использования тернарного оператора, дело тут вот в чём неверное вычисление для ULONG обусловлено следующим
ULONG_MAX = 4294967295
12 ! = 479001600
13 ! = 6227020800
Т.е. на 13-ти уже выскакиваем за пределы ULONG_MAX от того и некоректный подсчёт.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru