第二个和第八个测试点WA了,谁来救救我

P1591 阶乘数码

158168LR @ 2020-01-19 12:48:10

#include<bits/stdc++.h>
using namespace std;
int a[100000001];
int jcs(int x,int y)
{
    int h=1,m=0;
    a[1]=1;
    if(x==1)
      if(y==1)
        return 1;
      else
        return 0;
    for(int i=2;i<=x;i++)
    {
        for(int j=1;j<=h;j++)
          a[j]*=i;
        for(int j=1;j<=h;j++)
        {
            if(a[j]>10)
            {
                a[j+1]+=a[j]/10;//处理进位 
                a[j]%=10;
            }
            while(a[h+1]>0)//处理最高位产生的进位 
            {
                h++;
                a[h+1]=a[h]/10;
                a[h]%=10;
            } 
        }
        if(a[h+1]>0)
          h++;
    }
    for(int i=1;i<=h;i++)
    {
        if(a[i]==y)
          m++;
    }
    return m;
}
int main()
{
    int t,n,a;
    cin>>t;
    for(int i=1;i<=t;i++)
    {
        cin>>n>>a;
        cout<<jcs(n,a);
        cout<<endl;
    }
}

|