几的阶乘
n 的阶乘的结果,求这个整数 n。
比如输入
5 ! 120=1×2×3×4×5=5! ,所以输出 5。
一行,一个长度不超过 3000 3000 位的整数。
输出格式 一行,一个整数。
#include<bits/stdc++.h>
using namespace std;
struct answer{
string quo;
long long rem;
};
answer div(string x,long long y){
answer ans = {"",0};
long long a[10005]={};
int len=x.size();
for(int i=1;i<=len;i++)a[i]=x[i-1]-'0';
for(int i=1;i<=len;i++){
ans.quo=ans.quo+char((ans.rem*10+a[i])/y+'0');
ans.rem=(ans.rem*10+a[i])%y;
}
while(ans.quo[0]=='0'&&ans.quo.size()>1)ans.quo.erase(0,1);
return ans;
}
int main(){
string a;
long long b=1;
cin>>a;
answer ans;
while(ans.rem!='0'){
ans = div(a,b);
b++;
}
cout<<b;
return 0;
}
求助 T-T(我0分T-T)