C++计算2020的阶乘(C++超大数阶乘)
程序员文章站
2022-05-12 13:39:13
...
不使用任何整型变量,因为2020 的阶乘很大
使用string比较好,每次计算一位转成数字,乘以i,i表示的阶乘的因数进位后再转成字符串
#include <bits/stdc++.h>
using namespace std;
int main()
{
while(1)
{
string ans = "1";
int cnt;
cout<<"要计算几的阶乘?"<<endl;
cin>>cnt;
for(int i = 1;i<=cnt;i++)
{
int jw = 0;
for(int j = ans.size()-1;j>=0;j--)
{
int n = (ans[j]-0x30)*i+jw;
jw = n/10;
n = n%10;
ans[j] = n + 0x30;
}
while(jw){
ans = char(jw%10+0x30)+ans;
jw/= 10;
}
//cout<<"ans"<<" "<<ans<<" "<<"i"<<" "<<i<<endl;
}
cout<<ans<<endl;
}
return 0 ;
}
结果:
上一篇: DDCTF web题复现