NYOJ 91 阶乘之和 (经典贪心算法)

地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=91

思路:贪心,最大到最小依次加~~

代码如下:

 1 #include<stdio.h>

 2 #include<string.h>

 3 int main()

 4 {

 5     int m,n,i,aim;

 6     int a[11];

 7     memset(a,0,sizeof(a));

 8     a[1]=1;

 9     for(i=2;i<=10;i++)  //计算阶乘 

10        a[i]=a[i-1]*i;

11     scanf("%d",&m);

12     while(m--)

13     {

14         scanf("%d",&n);

15         aim=n;

16         for(i=10;i>0;i--)

17         {

18             if(aim>=a[i])

19             aim-=a[i];

20         }

21         if(aim==0)  puts("Yes");

22         else  puts("No");

23     }

24     return 0;

25 } 

26     

 

 

你可能感兴趣的:(贪心算法)