南阳题目91-阶乘之和
2016-04-10 22:57
302 查看
阶乘之和
时间限制:3000 ms | 内存限制:65535 KB难度:3
描述
给你一个非负数整数n,判断n是不是一些数(这些数不允许重复使用,且为正数)的阶乘之和,如9=1!+2!+3!,如果是,则输出Yes,否则输出No;
输入第一行有一个整数0<m<100,表示有m组测试数据;
每组测试数据有一个正整数n<1000000;输出如果符合条件,输出Yes,否则输出No;样例输入
2910
样例输出
YesNo
上传者
这个主要是数据比较小,直接把1-10的阶乘打表即可,然后找出最接近所给数的阶乘数,让所给数减去它,所得数在重复上述过程,最后若能得出0就满足条件
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; int solve(int x) { if(x==0||x==1) return 1; else return x*solve(x-1); } int main() { int a,b,c,d,m,n,i,f[11]; scanf("%d",&m); for(i=1;i<=10;i++) { f[i]=solve(i); } while(m--) { scanf("%d",&n); c=0; for(i=10;i>=0;i--) { if(n>=f[i]) n-=f[i]; if(n==0) c=1; } if(c) printf("Yes\n"); else printf("No\n"); } return 0; }
相关文章推荐
- 20145302张薇《Java程序设计》实验一报告
- 第四节河南省程序设计大赛-NYOJ-308-Substring
- 泛型总结
- Raft一致性算法
- hdu5353 (贪心)
- 项目记录34--tolua 框架 场景管理BaseScene
- 数据库范式
- 如何把Java程序打成JAR包并能自动运行
- 验证码功能实现
- android工具集合与api参考
- 20145118 《Java程序设计》第6周学习总结
- Navicat for mysql 远程连接 mySql数据库10061错误问题
- 据说他姓氏改成null之后,酒店、租车、购物各种不花钱了
- Cuda学习笔记(二)——Cuda中对线程块的设置
- leetcode编程题(3)Longest Substring Without Repeating Characters
- http 协议详解(转)
- 内存恶鬼drawRect - 谈画图功能的内存优化
- 20145304 实验一实验报告
- 20145329 《Java程序设计》实验一总结
- leetcode_109 Pascal Triangle II