A luck number
来源:互联网 发布:手机便签软件 编辑:程序博客网 时间:2024/04/28 15:45
Description
在中国传统意义上6,8都是幸运数字。在这题里重新定义幸运数字的含义。如果一个数可以由一些非负数的阶乘组成,并且这些数各不相同,我们就称这个数为幸运数。现在给定一个数n(n<= 1000000000),请你编写一个程序问n是否是幸运数字。例如126=5!+3!,则126就是一个幸运数字。同样2(2 =0!+1!)也是一个幸运数字。但是22就不能由一些非负数的阶乘组成,则它不是一个幸运数字。
Input
有多组数据输入,输入-1时,代表输入结束。
Output
判断每个数是否是幸运数字,如果是输出“YES”,否则输出“NO”。
Sample Input
126222-1
Sample Output
YESYESNO
#include<iostream>
using namespace std;
long long int s[13];
long long g(int x)
{
if(x==0)return 1;
else
{
long longint s=1;
for(inti=1;i<=x;i++)
s*=i;
return s;
}
}
int f(long long int w,int m)
{
if(w==0)return 1;
if(w<0||(w>0&& m>12)) return0;
if(f(w-s[m],m+1)) return 1;
returnf(w,m+1);
}
int main()
{
long long int n ;
for (int i=0;i<13;i++)
s[i]=g(i);
while(cin>>n&&n!=-1)
{
if(n==0)cout<<"NO"<<endl;
else if(f(n,0))cout<<"YES"<<endl;
elsecout<<"NO"<<endl;
}
}
- A luck number
- A luck number 2
- HDOJ 1005 Number Sequence
- HDOJ 1847 Good Luck in CET-4 E…
- hdu 1391 Number Steps
- acm 1005 Number Sequence
- HDU 1391 Number Steps
- HDU 4279 Number
- HDOJ 2101 A + B Problem Too
- hdu 1000 A + B Problem
- fzu 1759 A^B % C
- #define A (* (volatile unsigned …
- HDOJ 2075 A|B?
- HDOJ 2034 人见人爱A-B
- HDOJ 1017 A Mathematical Cur…
- HDOJ 4245 A Famous Music Comp…
- HDOJ 4252 A Famous City
- HDOJ 2054 A == B ?
- bingshen’s problem
- 消灭老鼠
- 前缀字符串
- 购物清单
- 整数
- A luck number
- Yale开放课程博弈论15
- Satellite Photographs
- 合并果子
- 亲密数
- 大整数加法
- 缺勤人数<中国地质大学第5届程…
- 有点像“高树”<中国…
- 牛人的题目(位运算一)