阶乘之和

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <algorithm>
 4 using namespace std;
 5 int s[11];
 6 bool visit[11];
 7 void ans()
 8 {
 9     for(int i=1;i<11;i++)
10     {
11         s[i]=1;
12         for(int j=i;j>0;j--)
13             s[i]*=j;
14     }
15 }
16 
17 int main()
18 {
19     int n,m,sum,i,flag;
20     scanf("%d",&m);
21     ans();
22     while(m--)
23     {
24         flag=1;
25         scanf("%d",&n);
26         for(i=10;i>=1;i--)
27         {
28             if(n-s[i]>0)
29                 n-=s[i];
30             else
31             {
32                 if(n-s[i]==0)
33                 {
34                     flag=0; break;
35                 }
36             }
37         }
38         if(flag)
39             printf("No
");
40         else
41             printf("Yes
");
42         
43     }
44     return 0;
45 }
46         
View Code
原文地址:https://www.cnblogs.com/WDKER/p/5363972.html