4 条题解

  • 0
    @ 2023-10-10 21:17:21
    #include<iostream>
    using namespace std;
    #include<stdio.h>
    int a[13];
    int init()
    {
        a[1]=1;
        a[2]=2;
        a[3]=6;
        int i;
        for(i=4;i<=13;i++)
        {
            a[i]=a[i-1]*i;
           // a[i-1]+=a[i-2];
        }
    }
    int juge(int n,int w
             )
    {
        if(n==0) return 0;
        int n1=n;
        int i;
        for(int i=1;i<w;i++)
        {
            if(n>=a[i]&&n<a[i+1])
            {
                if(juge(n-a[i],i)==0)
                     return 0;
            }
        }
        return 1;
     
     
    }
    int main()
    {
     
        int t;
        init();
        scanf("%d",&t);
        while(t--)
        {
     
            int n;
            scanf("%d",&n);
            if(juge(n,13)==0)
            {
                printf("Yes\n");
            }
            else
            {
                printf("No\n");
            }
        }
    }
     
    

    信息

    ID
    157
    时间
    3000ms
    内存
    128MiB
    难度
    8
    标签
    (无)
    递交数
    1198
    已通过
    200
    上传者