Time Limit: 1 second

Memory Limit: 128 MB

【问题描述】

某些数能表示成为一些互不相同的整数的阶乘之和。如9=l!+2! +3!。 现在给定一个非负整数n,要求判断n能否表示成为一些互不相 同的非负整数的阶乘之和,如果能,则输出“YES",否则输出“N0”(引号不输出)。

【输入格式】

输入文件中每行一个非负整数n(n≤1000000),最后一行是一个负数,作为输入的结束。

【输出格式】

对输入文件中的每个非负整数n,在输出文件中分别输出“YES”或“N0”,各占l行。(引号不输出)

【数据规模】

Sample Input1

  9
5
-1
【题解】
对于n >=3;n!> (n-1)!+(n-2)!+(n-3)!....
eg:
0!=1 1!=1 2!=2 3!= 6
3 !>0!+1!+2!

根据这个原理,我们可以从9递减到1进行枚举。(10!>100W),只要这个数字能够减去i!,则一定要减。否则后面的数加起来都不能和i!一样大。因此 规则就是遇到能减就减。
如果减完一次i!之后还能再减同样的i!,那么就无解了(要求数字要不同);最后判断一下答案是否为0就好。
n<=2的情况是
2 1 1,如果2可以减,那么就减。剩下两个1,可以一个一个减。又都是整数。所以如果有解,是一定不会漏掉的。
【代码】
#include <cstdio>
#include <cstring>
#define maxn 19 int n,a[11]; void input_data()
{
a[0] = 1;
for (int i = 1;i <= 10;i++) //先预处理出1!-10!的值存在a数组中
a[i] = a[i-1] *i;
int x;
scanf("%d",&x); //输入数字,如果不为负数就继续.
while (x >= 0)
{
int temp = x;
bool flag = true;
for (int i = 9;i >=0;i--) //进行枚举
{
if (temp >= (a[i+1] + 10)) //如果减完上一个数字还能继续减上一个数字,就输出无解
{
flag = false;
break;
}
if (temp >= a[i]) //如果能减就减。不能减的就跳过。
temp-=a[i];
}
if (flag && temp == 0 && x!=0) //如果刚好减完就输出有解信息。
printf("YES\n");
else
printf("NO\n");
scanf("%d",&x);
}
} int main()
{
input_data();
return 0;
}



【u239】整数分解的更多相关文章

  1. 整数分解 && 质因数分解

    输入整数(0-30)分解成所有整数之和.每四行换行一次. 一种方法是通过深度优先枚举出解.通过递归的方式来实现. #include <stdio.h> #include <strin ...

  2. POJ 2429 GCD & LCM Inverse (Pollard rho整数分解+dfs枚举)

    题意:给出a和b的gcd和lcm,让你求a和b.按升序输出a和b.若有多组满足条件的a和b,那么输出a+b最小的.思路:lcm=a*b/gcd   lcm/gcd=a/gcd*b/gcd 可知a/gc ...

  3. POJ 1811 Prime Test (Pollard rho 大整数分解)

    题意:给出一个N,若N为素数,输出Prime.若为合数,输出最小的素因子.思路:Pollard rho大整数分解,模板题 #include <iostream> #include < ...

  4. POJ1811_Prime Test【Miller Rabin素数测试】【Pollar Rho整数分解】

    Prime Test Time Limit: 6000MS Memory Limit: 65536K Total Submissions: 29193 Accepted: 7392 Case Time ...

  5. Light OJ 1341 Aladdin and the Flying Carpet Pollard_rho整数分解+DFS

    进入a b 多少努力p, q 使p*q == a && p < q && p >= b 直接大整数分解 然后dfs所有可能的解决方案劫持 #include ...

  6. Vijos 1033 整数分解(版本2)

    描述 整数分解(版本2) 一个正整数可以分解成若干个自然数之和.请你编一个程序,对于给出的一个正整数n(1<=n<=1500),求出满足要求的分解方案,并使这些自然数的乘积m达到最大. 例 ...

  7. PTA 7-1 整数分解为若干项之和(20 分)

    7-1 整数分解为若干项之和(20 分) 将一个正整数N分解成几个正整数相加,可以有多种分解方法,例如7=6+1,7=5+2,7=5+1+1,….编程求出正整数N的所有整数分解式子. 输入格式: 每个 ...

  8. POJ2429_GCD &amp; LCM Inverse【Miller Rabin素数測试】【Pollar Rho整数分解】

    GCD & LCM Inverse Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 9756Accepted: 1819 ...

  9. 整数(质因子)分解(Pollard rho大整数分解)

    整数分解,又称质因子分解.在数学中,整数分解问题是指:给出一个正整数,将其写成几个素数的乘积的形式. (每个合数都可以写成几个质数相乘的形式,这几个质数就都叫做这个合数的质因数.) .试除法(适用于范 ...

  10. Miller-Rabbin 素性测试 和 Pollard_rho整数分解

    今天学习一下Miller-Rabbin  素性测试 和 Pollard_rho整数分解. 两者都是概率算法. Miller_Rabbin素性测试是对简单伪素数pseudoprime测试的改进. (ps ...

随机推荐

  1. [Javascript AST] 1. Continue: Write a simple Babel plugin

    We want to write a Babel Plugin, which move 'const versionRegex = /(/d+)\.(/d+)\.(/d+)/gi' out of fu ...

  2. WebStorm(Amaze开发工具)--JavaScript 开发工具

    WebStorm(Amaze开发工具)--JavaScript 开发工具 一.总结 1.webstorm:前段开发神器,应该比sublime好用. 2.webstorm功能:支持显示图片宽高,标签重构 ...

  3. Oracle学习总结(9)—— Oracle 常用的基本操作

    创建用户,相当于在sqlServer中创建一个数据库  create user 用户名 identified by 密码  修改用户密码  alter user 用户名 identified by 新 ...

  4. java与javax的区别分析

    Java是一种受C语言影响的编程语言.Java和Javax本质上是与Java编程语言的上下文一起使用的包.实际上Java和Javax没有区别.这只是不同的名字. Java是一种编程语言,受到C语言的影 ...

  5. Android 设置背景透明度

    一些时候,我们须要为UI页面设置背景色,例如以下图所看到的: 上图已注: 背景颜色为#000000,透明度为40%: 那么.怎样在代码中表示呢? 首先须要了解: 颜色和不透明度 (alpha) 值以十 ...

  6. js进阶 13-5 jquery队列动画如何实现

    js进阶 13-5 jquery队列动画如何实现 一.总结 一句话总结:同一个jquery对象,直接写多个animate()就好. 1.什么是队列动画? 比如说先左再下,而不是左下一起走 2.怎么实现 ...

  7. Redo current损坏

       如果损坏的是current redo log (select group#,sequence#,archived,status from v$log;) 有两种情况: A.   数据库是正常关闭 ...

  8. Loadrunner--集合点

    集合点的意思是等到特定的用户数后再一起执行某个操作,比如一起保存,一起提交(我们通常意义上的并发数并不是指一起提交或者一起保存),一般情况下使用不到集合点,不过,订票系统或者促销类需要用到,比如说某个 ...

  9. 最全Pycharm教程(42)——Pycharm扩展功能之Emacs外部编辑器

    1.主题 介绍怎样将Emacs定义为一个Pycharm外部编辑器. 2.准备工作 (1)Pycharm版本号为2.7或更高 (2)下载了downloadedEmacs并正确安装 3.配置Emacs 打 ...

  10. spring与memcache的整合

    1. pom.xml文件增加: <dependency> <groupId>com.whalin</groupId> <artifactId>Memca ...