【发布时间】:2022-01-25 21:22:01
【问题描述】:
好吧,我在这个问题上停留了很长一段时间:
问题: 要求您计算一些小的正整数的阶乘。
输入:
一个整数t,1
输出:
对于输入时给定的每个整数 n,显示值为 n 的一行!
//coded in c++
#include <bits/stdc++.h> //loadind up all the libraries at once.
using namespace std;
int main()
{ int T;
scanf("%d", &T);
//I am not doing "cin<<" cause "scanf" is faster than it
for (int i = 0; i < T; i++)
{
int N;
scanf("%d",&N);
long long int product = 1;
while (N >0){
product = product * N;
N--;
}
printf("%lld\n",product);
}
return 0;
}
我能得到 10!,20!但无法获得100! (阶乘) 所以极端情况不满足。请帮我为我的变量获得一个好的数据类型为 100!阶乘的位数超过 100 位。当我在终端上输入 100 时它显示 0。
P.S - 这个问题来自 CodeChef 网站 (FCTRL2)。
【问题讨论】:
-
#include <bits/stdc++.h> using namespace std;不,不,不。 -
100!太大,无法容纳 64 位值。 -
没有可以容纳 100 的内置整数数据类型!您将不得不编写一个类来存储如此大的数字,或者使用其他人的类来完成这项工作。
-
好吧,我在想如果我用字符串代替整数会怎样。
-
@vivekupadhyay 看看factorial of big numbers with strings in c++。