怪,只有前三个WA

P1591 阶乘数码

imfkwk @ 2020-10-28 23:59:02

#include<bits/stdc++.h>
using namespace std;
int t,n,a,l;
int ans;
int s[10001];
void jin()
{
    for(int i=1;i<=l;i++)
    {
        if(s[i]>9)
        {
            s[i+1]+=s[i]/10;
            s[i]%=10;
        }
        while(s[l+1])
        {
            l++;
            if(s[l]>9)
            {
                s[l+1]+=s[l]/10;
                s[l]%=10;
            }
        }
    }
}

void cheng(int x)
{
    for(int i=1;i<=l;i++)
    s[i]*=x;
    jin();
}

int main()
{
    cin>>t;
    for(int i=1;i<=t;i++)
    {
        ans=0;
        for(int j=1;j<=l;j++)s[i]=0;
        s[1]=1;
        l=1;
        cin>>n>>a;
        for(int j=1;j<=n;j++)
        cheng(j);
        for(int j=1;j<=l;j++)
        if(s[j]==a)ans++;
        cout<<ans<<endl;
    }
    return 0;
}

by mattinas @ 2020-10-29 07:31:11

您第40行

for(int j=1;j<=l;j++)s[i]=0;

是s[j]=0;吧。(我也不知道有没有影响。


by mattinas @ 2020-10-29 07:39:59

抱歉我用您的代码改了一下提交了试试看。(抱歉抱歉抱歉。(能ac)

我把那行改成了

memset(s,0,sizeof(s));

所以应该就是那里。。。


|