6 條題解
-
0
#include<stdio.h> int main(){ int n,m; scanf("%d",&n); while(n--) { int a[9]={1,2,6,24,120,720,5040,40320,362880};//分别求出1~9的阶乘,存入数组中。 scanf("%d",&m);输入m. int t=0,i;t用来判断是否为阶乘之和数,1表示是阶乘之和数,0表示不是阶乘之和数。 for(i=8;i>=0;i--) { if(m>=a[i]) { m-=a[i]; }由小到大遍历数组,如果m大于其中一个元素,那就减去这个元素。 if(m==0) { t=1; break; }如果最后m减完结果为0,就为阶乘之和数。 } if(t==1) { printf("Yes\n"); } else { printf("No\n"); } } return 0; }
資訊
- ID
- 157
- 時間
- 3000ms
- 記憶體
- 128MiB
- 難度
- 8
- 标签
- (無)
- 遞交數
- 1456
- 已通過
- 250
- 上傳者