MnZn代码70pts离谱测评结果求调

P1591 阶乘数码

``` #include <bits/stdc++.h> using namespace std; int a[20001],b[20001],c[20001]; int t,n,l; int anss; string k; string fun3(string x,string y){ string s1; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); int lenx=x.length(); int leny=y.length(); for(int i=0;i<lenx;i++){ a[lenx-i-1]=x[i]-'0'; } for(int i=0;i<leny;i++){ b[leny-i-1]=y[i]-'0'; } int lenc=lenx+leny; for(int i=0;i<lenx;i++){ for(int j=0;j<leny;j++){ c[i+j]+=a[i]*b[j]; } } for(int i=0;i<lenc;i++){ c[i+1]+=c[i]/10; c[i]%=10; } while(c[lenc-1]==0&&lenc>1){ lenc--; } for(int i=lenc-1;i>=0;i--){ s1=s1+to_string(c[i]); } return s1; } int main(){ string ans,sum="1"; cin>>t; for(int i=1;i<=t;i++){ anss=0; cin>>n>>k; sum="1"; for(int j=1;j<=n;j++){ sum=fun3(sum,to_string(j)); } l=sum.length(); for(int j=0;j<l;j++){ if(sum[j]==k[0]){ anss++; } } cout<<anss<<"\n"; } return 0; } ``` 这是我的 你看看哪错了
by __dreams__ @ 2023-08-17 20:50:39


|