POJ 1775
2015-06-10 16:44
197 查看
#include <iostream> using namespace std; int fact[] = {1,1,2,6,24,120,720,5040,40320,362880}; bool boo; void DFS(int time,int sum); int n; int main() { //freopen("acm.acm","r",stdin); while(cin>>n) { if(n < 0) { break; } boo = false; DFS(0,0); if(boo) { cout<<"YES"<<endl; } else { cout<<"NO"<<endl; } } } void DFS(int time,int sum) { if(time == 10) { return; } sum += fact[time]; if(sum == n) { boo = true; return; } else if(sum > n) { return; } else if(sum < n) { DFS(time+1,sum); if(boo) return; } sum -= fact[time]; DFS(time+1,sum); }
相关文章推荐
- CSS制作一个简单网页的下拉导航栏
- 让你的 Node.js 应用跑得更快的 10 个技巧(转)
- 在centos上手动安装opencv
- OOAD 学习笔记 三
- 5.MFC运行时动态创建
- iOS皮肤框架JJSkin介绍
- 【MySql】Column count doesn't match value count at row 1 解决方法
- 黑马程序员——学习日记之--IO流学习总结
- Oracle shrink space
- POJ 1753
- 计算机视觉杂谈
- 黑马程序员--冒泡排序法
- linux centOS安装proftpd
- MySQL 日志文件 说明
- NSDate如何获取一个月后的日期
- Threads, Events and QObjects
- hadoop2.x error记录
- CentOS7.0硬盘安装(双系统win8.1+CentOS7)遇到的问题及解决办法
- 排序算法之(5)——归并排序(递归实现)
- sqlserver 自增ID插入指定数据