这,本蒟蒻有一点问题,样例过了but全红(WA),望大犇指教!
#include<bits/stdc++.h>
using namespace std;
struct BigInt{
int len;
int array[10005];
};
BigInt Mul(BigInt a,int x)
{
BigInt c;
memset(c.array,0,sizeof(c.array));
c.len=a.len+1;
for(int i=0;i<=c.len-1;i++)
{
c.array[i]+=a.array[i]*x;
c.array[i+1]+=c.array[i]/10;
c.array[i]%=10;
}
while(c.len&&c.array[c.len]==0) c.len--;
if(c.len==0) c.len=1;
return c;
}
int main()
{
int t,a,n;
cin>>t;
while(t--)
{
int step=0;
BigInt c;
memset(c.array,0,sizeof(c.array));
c.array[0]=1;
cin>>n>>a;
for(int i=1;i<=n;i++)
c=Mul(c,i);
for(int i=c.len;i>=0;i--)
if(c.array[i]==a) step++;
cout<<step<<endl;
}
system("pause");
}