Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
29 / 1 / 0
Регистрация: 25.02.2020
Сообщений: 82
1

Факториал. Определить максимальное число, факториал которого хранится в переменной типа int

25.02.2020, 09:02. Показов 2425. Ответов 6
Метки нет (Все метки)

/*Доброго времени суток !
Задача такова:
Пользователь вводит число с клавы.
Вывести на экран факториал этого числа.
Определить максимальное число, факториал которого может храниться в переменной типа int.

Факториал числа нашел, а вот найти максимальное число, факториал которого хранится в переменной типа int не могу. Подскажите куда копать.
*/

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;
 
int main() {
    setlocale(0, "");
    /*факториал - произведение всех натуральных числе от 1 до n*/
 
    //1. найдем факториал введенного пользователем числа
    int N, count = 1, n1=1;
    cin >> N;
    for (int i = 1; i <N; i++) {
        n1*=++count;
        }cout <<N<<"! = "<< n1<<endl;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.02.2020, 09:02
Ответы с готовыми решениями:

Определить наибольшее число, факториал которого не превышает 10000
Определить наибольшее число, факториал которого не превышает 105.

Определить самое большое число, для которого можно вычислить факториал на имеющемся компьютере
Задача: Составить программу для вычисления самого большого числа, для которого можно вычислить...

Описать рекурсивные функции вещественного типа, вычисляющие факториал и двойной факториал заданного числа
Описать рекурсивные функции Fact(N) и Fact2(N) вещественного типа, вычисляющие значения факториала...

Найти натуральное наименьшее число n, факториал которого превышает число 4000
Написать программу для решения следующей задачи,используя,по крайней мере, два вида циклов. Найти...

6
Продавец времени
6448 / 3447 / 799
Регистрация: 12.03.2015
Сообщений: 16,474
25.02.2020, 09:15 2
Число влезет в 31-битный int, если оно не больше 2147483647.
Число влезет в 32-битный unsigned int, если оно не больше 4294967295.
0
29 / 1 / 0
Регистрация: 25.02.2020
Сообщений: 82
26.02.2020, 09:02  [ТС] 3
Цитата Сообщение от Verevkin Посмотреть сообщение
Число влезет в 31-битный int, если оно не больше 2147483647.
Число влезет в 32-битный unsigned int, если оно не больше 4294967295.
Спасибо, конечно, но мне нужна формула. Программа должна определить максимальное число, факториал которого влезет в переменную типа int
0
Продавец времени
6448 / 3447 / 799
Регистрация: 12.03.2015
Сообщений: 16,474
26.02.2020, 09:17 4
Цитата Сообщение от m054 Посмотреть сообщение
Спасибо, конечно, но мне нужна формула.
xmax! < 231
1
337 / 237 / 103
Регистрация: 26.03.2019
Сообщений: 407
26.02.2020, 10:16 5
Приблизительно так. На выходе из цикла b будет первым числом, факториал которого не может храниться в int.
C++
1
2
3
4
5
6
7
8
9
10
int a = 1;
int b = 1;
int f = 1;
while(a == f/b)
{
     b++;
     a = f;
     f = f*b;
}
cout << --b << endl;
2
Модератор
1945 / 1387 / 747
Регистрация: 16.10.2013
Сообщений: 4,130
Записей в блоге: 11
26.02.2020, 11:43 6
недавно была похожая тема факториал в цикле
0
1848 / 1011 / 423
Регистрация: 11.10.2018
Сообщений: 5,253
26.02.2020, 12:50 7
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
32
33
34
35
36
37
#include <iostream>
#include <string>
using namespace std;
 
#define UINT 4294967295
#define INT 2147483647
 
int main()
{
    setlocale(LC_ALL, "Rus");
 
    long long n = 1, f = 1;
 
    while(f <= UINT)
    {
        cout << "\n    f = " << f;
        cout << "\n    n = " << n;
 
        n++;
        f *= n;
    }
    cout << "\nдля UINT n = " << n-1 << "\n";
 
    n = 1;
    f = 1;
    while(f <= INT)
    {
        cout << "\n    f = " << f;
        cout << "\n    n = " << n;
 
        n++;
        f *= n;
    }
    cout << "\nдля INT n = " << n-1 << "\n";
 
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.02.2020, 12:50

Найти минимальное число, факториал которого будет делиться на определенное число
здравствуйте,есть задача, в ходе которой нужно найти минимальное число m, факториал которого будет...

Как посчитать факториал большого числа, если диапазон типа данных (int) ограничен?
а как мне правильно вывести кол-во чисел?? Я так понимаю,что я вышел за пределы диапазона(( ...

Найдите число, факториал которого лежит в регистре %eax
Здравствуйте! В ассамблере не шарю,но нужно выполнить такую задачку: Ограничение по времени...

Максимальное значение переменной типа int
Если тип long в 2 раза больше чем int. Сколько максимум в int? В чём они измеряются в памяти? в...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru