Форум программистов, компьютерный форум 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 пользователь вводит с клавиатуры. Пример оформления программы: Введите коэффициент a при квадрате x: 2 Введите коэффициент b при x: 3 Введите свободный член c: 1 Ваше уравнение имеет два различных корня Следующая тема с названием не по правилам форума будет...
C++ Округление и вывод вещественное число Создать программу, округляющую и выводящую на экран вещественное число, введенное пользователем с клавиатуры, в виде целого числа. Например, если пользователь ввёл число -3.2, то на экран выводится -3; если пользователь ввёл -1.95, то на экран выводится -2; если пользователь ввёл 17.5, то на экран выводится 18. http://www.cyberforum.ru/cpp-beginners/thread614686.html
C++ Eсть хоть какие-то идеи?
Построить чертеж: «В прямоугольном параллелепипеде провести перерез, который проходит через сторону нижней основы и противоположную сторону верхней основы.
C++ Ввести символ и вывести сообщение
Ввести символ и вывести сообщение: -«красный», если введена либо большая, либо маленькая русская буква «к»; -«синий», если введена либо большая, либо маленькая русская буква «с»; -«зеленый», если введена либо большая, либо маленькая русская буква «з»; и «символ не распознается» при вводе любого другого символа.
C++ Найти и вывести на экран наибольший нетривиальный делитель числа http://www.cyberforum.ru/cpp-beginners/thread614640.html
Пользователь вводит с клавиатуры натуральное число, найти и вывести на экран наибольший нетривиальный (т.е. не равный введённому числу или единице) делитель числа, либо сообщить, что число простое. Например, если пользователь ввёл 17, то на экран выводится сообщение «число простое»; если пользователь ввёл 24, то на экран выводится сообщение «наибольший нетривиальный делитель: 12».
C++ Как правильно закрыть процесс Я пишу программу мониторинга Для этого использую драйвер и в драйвере подменяю CreateSection Как правильно закрыть процесс _asm{ //save execution contect and calls check() -the rest depends upon the value check() returns // if it is 1, proceed to the actual callee. Otherwise,return STATUS_ACCESS_DENIED pushfd pushad подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
27.06.2012, 14:59     Вычислить факториал натурального числа n из отрезка [1;20]
Цитата Сообщение от 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;
}
Миниатюры
Вычислить факториал натурального числа n из отрезка [1;20]  
 
Текущее время: 13:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru