标签:style blog io ar 使用 sp for 数据 div
给你一个非负数整数n,判断n是不是一些数(这些数不允许重复使用,且为正数)的阶乘之和,如9=1!+2!+3!,如果是,则输出Yes,否则输出No;
2
9
10
Yes
No
#include<stdio.h> long num[12];//因为n小于100000,所以10就足够,10!>100000 int main() { int t,n; int i,j,k; num[1]=1; for(i=2;i<=12;i++) num[i]=i*num[i-1]; scanf("%d",&t); while(t--) { scanf("%d",&n); for(i=12;i>=1;i--) if(n>=num[i]) n-=num[i]; //因为不能重复使用,所以从大到小符合条件就减就好 if(n==0) printf("Yes\n"); else printf("No\n"); } return 0; }
标签:style blog io ar 使用 sp for 数据 div
原文地址:http://blog.csdn.net/wangluoershixiong/article/details/41014467