POJ 1775 Sum of Factorials (ZOJ 2358)
来源:互联网 发布:sql语句查询列 编辑:程序博客网 时间:2024/06/05 09:47
http://poj.org/problem?id=1775
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1334
题目大意:
给一个数n看看n是否能够拆成几个阶乘的和
如9=1!+2!+3!
方法一:
最初想法是直接打出0~10的阶乘,10的阶乘已经大于n的范围
然后DFS,也过了。不过时间好惨。。。
注意n=0输出NO和0!=1
#include<cstdio>#include<cstring>const int MAXN=10;int temp[12]={1,1};bool used[12];bool ok;void dfs(int cur,int sum,int target){if(sum >target)return;if(sum==target){ok=true;return ;}for(int i=cur;i<=MAXN;i++){if(used[i]==false){used[i]=true;dfs(i,sum+temp[i],target);used[i]=false;}}}int main(){for(int i=2;i<=MAXN;i++)temp[i]=temp[i-1]*i;int n;while(scanf("%d",&n),n>=0){if(n==0){printf("NO\n");continue;}memset(used,0,sizeof(used));ok=false;dfs(0,0,n);if(ok) printf("YES\n"); else printf("NO\n"); }return 0;}
方法二:
贪心。。
然后把不超过n的阶乘减去。
因为n! >= sum(1 ! + 2!+……n-1!)
#include<cstdio>const int MAXN=10;int main(){int temp[12]={1,1};for(int i=2;i<=MAXN;i++)temp[i]=temp[i-1]*i;int n;while(scanf("%d",&n),n>=0){if(n==0){printf("NO\n");continue;}for(int i=MAXN;i>=0;i--){if(n >=temp[i])n-=temp[i];}if(n==0)printf("YES\n");elseprintf("NO\n");}return 0;}
0 0
- zoj 2358 || poj 1775 Sum of Factorials
- POJ 1775 Sum of Factorials (ZOJ 2358)
- poj 1775&&zoj 2358 Sum of Factorials
- poj 1775 && zoj 2358 Sum of Factorials
- POJ 1775 (ZOJ 2358) Sum of Factorials
- zoj 2358 Sum of Factorials
- ZOJ 2358 Sum of Factorials
- ZOJ 2358 Sum of Factorials
- ZOJ - 2358 Sum of Factorials
- poj 1775 Sum of Factorials
- poj 1775 Sum of Factorials
- POJ 1775 Sum of Factorials
- Sum of Factorials zoj
- zoj 2358||poj1775 Sum of Factorials(阶乘)
- POJ 1775 Sum of Factorials DFS 贪心
- poj 1775(Sum of Factorials)
- POJ 1775 Sum of Factorials 二分模板
- POJ 1775 Sum of Factorials(数论)
- 按钮 普通按钮实现重置,隐藏域hidden
- Audio File Convert(afconvert)工具转换音频格式
- 【C/C++】Linux下使用system()函数一定要谨慎
- [shell]用shell脚本将本地文件夹与ftp上的文件夹同步
- UIView 设置背景图片的方法
- POJ 1775 Sum of Factorials (ZOJ 2358)
- 可定制的Cursor--MatrixCursor
- flash 图表——FusionCharts 构建强大图表、多曲线图表
- [长篇]在畅游实习的经历,让我学到了很多(架构、管理、合作)
- OpenGL概念辨析: 窗口,视口,裁剪区域
- F5 Networks:应用交付的“4G”挑战
- clock函数学习链接
- 获取当前的spring容器ApplicationContext 。
- Hive外部表操作