1172:求10000以内n的阶乘
#include<iostream>
#include<vector>
using namespace std;
int main(){
int n,sam=0;
cin>>n;
vector<int> a;
a.push_back(1);
for(int i=2;i<=n;i++){
for(int j=0;j<a.size()||sam;j++){
if(j>=a.size()){
a.push_back(0);
}
sam+=a[j]*i;
a[j]=sam%10;
sam/=10;
}
}
for(int i=a.size()-1;i>=0;i--){
cout<<a[i];
}
return 0;
}

浙公网安备 33010602011771号