题目是这样的:n的阶乘定义为n!=123……n 如3!=6 n!通常最后会有很多0,如5!=120 最后有一个0,现在统计n!去除末尾的0后,最后k位是多少?
范围:1< =n< =1400000 1< =k< =10
我总是过不去。
以下是代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
long long n,k,m;
char t;
long long s=1,p=1;
string str[100];
cin>>n>>k;
for(int i=1;i<=n;i++){
s=s*i;
while(s%10==0) s/=10;
s=s%10000000000;
}
for(int i=0;i<k;i++){
if(s){
str[i]=s%10+48;
s/=10;
}else str[i]='0';
}
for(int i=k-1;i>=0;i--) cout<<str[i];
cout<<endl;
return 0;
}
请帮忙看下