4 条题解
-
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
- 标签
- (无)
- 递交数
- 1212
- 已通过
- 203
- 上传者