全WA好吧,求助好吧~

P1591 阶乘数码

sleven_bird @ 2022-11-13 21:02:40

#include <bits/stdc++.h>
using namespace std;
int x[1145],c[1145],aa[1145];
int t,a,s,xl=1,tl,jw,ss=0,aas=0;
int main()
{
    cin>>t;
    for(int i=1;i<=t;i++)
    {
        cin>>s>>a;ss=0;
        memset(x,0,sizeof(x));x[0]=1;xl=1;
        for(int j=1;j<=s;j++)
        {
            tl=0;jw=0;
            for(int k=0;k<xl;k++)c[k]=x[k];
            for(int k=0;k<xl;k++)
            {
                x[k]=c[k]*j+jw;tl++;
                jw=x[k]/10;
                x[k]%=10;
            }
            if(jw){tl++;x[xl]=jw;}xl=tl;
        }
        int flag=0;
        for(int j=xl+1;j>=0;j--)
            if(flag||x[j])
            {
                flag=1;if(x[j]==a)ss++;
                //cout<<x[j];
            }
        aa[++aas]=ss;
    }
    for(int i=1;i<=aas;i++)cout<<aa[i]<<endl;
    return 0;
}

全WA好吧,求助好吧~


by Magus @ 2022-11-13 21:22:05

int x[1145],c[1145],aa[1145];

好臭好吧


by sleven_bird @ 2022-11-13 21:33:37

@TX_Bernie

e,我需要帮助,好吧!


by sleven_bird @ 2022-11-13 22:23:50

#include <bits/stdc++.h>
using namespace std;
int x[114514],c[114514],aa[114514];
int t,a,s,xl=1,tl,jw,ss=0,aas=0;
int main()
{
    cin>>t;
    for(int i=1;i<=t;i++)
    {
        cin>>s>>a;ss=0;
        memset(x,0,sizeof(x));x[0]=1;xl=1;
        for(int j=1;j<=s;j++)
        {
            tl=0;jw=0;
            for(int k=0;k<xl;k++)c[k]=x[k];
            for(int k=0;k<xl;k++)
            {
                x[k]=c[k]*j+jw;tl++;
                jw=x[k]/10;
                x[k]%=10;
            }
            while(jw)
            {
                x[tl++]=jw%10;
                jw/=10;
            }xl=tl;
        }
        int flag=0;
        for(int j=xl+1;j>=0;j--)
            if(flag||x[j])
            {
                flag=1;if(x[j]==a)ss++;
                //cout<<x[j];
            }
        aa[++aas]=ss;
    }
    for(int i=1;i<=aas;i++)cout<<aa[i]<<endl;
    return 0;
}

数组开小了,好吧!


|