С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Вычислить факториал натурального числа 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:59
Цитата Сообщение от g-h Посмотреть сообщение
Это мое мнение и спорить не хочу.
А я и не собирался спорить, просто для конкретной задачи нет необходимости вынесения подсчёта факториала в отдельную функцию.

Цитата Сообщение от MrGluck Посмотреть сообщение
Ну да, так unsigned long long хватает диапазона для корректного подсчета 20!
Можно смело брать твой код, дописывать в объявлении еще одно long и юзать на здоровье
- в принципе да, но мне кажется лучше работать с double(как уже писал), т.к. можно будет вычислять большие значения факториала. Привожу свою окончательную версию (впринципе алгоритм может спокойно щёлкать факторилы и поболее 20, так что ограничение 20 < value можно снять)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iomanip>
#include <iostream>
using namespace std;
 
int main()
{
    int i, value;
    double fact;
    while(true)
    {
        fact = 1;
        cout<<"Enter number [1;20] : ";
        if(!(cin>>value) || cin.get() != '\n')
        {
            cin.clear();
            cin.sync();
            cout<<"Bad input\n";
        }
        else
        if(value < 1 || 20 < value)
            cout<<"Entered value not from diapazone [1;20]\n";
        else
        {
            for(i = 1; i <= value; i++)
                cout<<"Iteration : "<<i<<endl
                <<i<<" != "<<setprecision(20)
                <<(fact = fact*i)<<endl;
        }
    }
    return 0;
}
1
Миниатюры
Вычислить факториал натурального числа n из отрезка [1;20]  
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.