求助大佬
查看原帖
求助大佬
1535228
luqiancheng楼主2025/6/14 10:21

谁来救救我! 做不出来。

#include <bits/stdc++.h>

using namespace std;
int t,n,a;
int u[1000000];
int flag;
int main()
{
    cin>>t;
    for(int w=1;w<=t;w++)
    {
        flag=0;
        memset(u,0,sizeof(u));
        u[1]=1;
        cin>>n>>a;
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=2500;j++)
            {
                if(!u[j])
                    continue;
                u[j]*=j;
            }
            for(int j=1;j<=2500;j++)
            {
                if(u[j]>9)
                {
                    u[j+1]+=u[j]/10;
                    u[j]%=10;
                }
            }
        }
        int tot=0;
        for(int i=2500;i>=1;i--)
        {
            if(u[i]==0&&flag==0) 
                continue;
            if(u[i]>=1)
                flag=1;
            if(u[i]==a)
            {
                tot++;
            }
            //cout<<u[i]<<' ';
        }
        //cout<<endl;
        cout<<tot<<endl;
    }
    return 0;
}

2025/6/14 10:21
加载中...