阶乘计算(大数)
程序员文章站
2022-03-09 16:11:01
...
#include <iostream>
#include <vector>
using namespace std;
vector<int> stratum(int n){
vector<int> str;
int m=0,p;//m为进位 p为当前位置上经过乘计算 和 加计算的数
str.push_back(1);//初始值;
int i,j;
for(i=1;i<=n;i++){
for(j=0;j<str.size();j++){
p=str[j]*i+m;
str[j]=p%10;
m=p/10;
if(j==str.size()-1&&m!=0){//当容量不足以完成进位计算时扩容
str.push_back(0);
}
}
}
return str;
}
int main()
{
vector<int>str;
int n;
cin>>n;
str=stratum(n);
for(int i=str.size()-1;i>=0;i--)
cout<<str[i];
return 0;
}
测试输入1000
输出为