zoj 2358,poj 1775 Sum of Factorials(数学题)
//我感觉是题目表述不确切,比如他没规定xi能不能重复,比如都用1,那么除了0,都是YES了
//算了,这种题目,百度来的过程,多看看记住就好
//题目意思:判断一个非负整数n能否表示成几个数的阶乘之和
//这里有一个重要结论:n!>(0!+1!+……+(n-1)!),
//证明很容易,当i<=n-1时,i!<=(n-1)!,故(0!+1!+……+(n-1)!)<=n*(n-1)!=n!.
// 由于题目规定n<=1000000,而10!=3628800>100000,故只需保存前10项的阶乘.
// 有两个需要注意的地方:1>如果题目输入0,按照上面的方法处理得到的结果是"YES",
//而按照题目的意思应该输出"NO",所以需要特别处理.
// 2>题目输入结束的方法是以如果输入的数为负数就结束输入. //10! = 3628800 > 1000000
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std; int main()
{
int n,i;
int fact[];//这里还是要开的大一点。。因为下标从0开始
fact[]=;
for(i=;i<=;i++)
fact[i]=fact[i-]*i; while(scanf("%d",&n)!=EOF)
{
if(n<) break;
if(n==)
printf("NO\n");
else {
for(i=;i>=;i--) //之前错了,是这样的:0!=1 ,也算进去的
{
if(n-fact[i]>=)
n-=fact[i];
}
if(n==)
printf("YES\n");
else
printf("NO\n");
}
}
return ;
}
zoj 2358,poj 1775 Sum of Factorials(数学题)的更多相关文章
- POJ 1775 Sum of Factorials (ZOJ 2358)
http://poj.org/problem?id=1775 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1334 题目大意: ...
- POJ 1775 Sum of Factorials 数论,基础题
输入一个小于1000000的正整数,是否能表达成式子:a1!+a2!+a3!+...+an (a1~an互不相等). 因为10!>1000000,所以先打1~10的阶乘表.从a[10]开始递减判 ...
- POJ 1775 (ZOJ 2358) Sum of Factorials
Description John von Neumann, b. Dec. 28, 1903, d. Feb. 8, 1957, was a Hungarian-American mathematic ...
- ACM:POJ 2739 Sum of Consecutive Prime Numbers-素数打表-尺取法
POJ 2739 Sum of Consecutive Prime Numbers Time Limit:1000MS Memory Limit:65536KB 64bit IO Fo ...
- 每日一九度之 题目1038:Sum of Factorials
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2109 解决:901 题目描述: John von Neumann, b. Dec. 28, 1903, d. Feb. 8, 1957, ...
- ZOJ 1542 POJ 1861 Network 网络 最小生成树,求最长边,Kruskal算法
题目连接:problemId=542" target="_blank">ZOJ 1542 POJ 1861 Network 网络 Network Time Limi ...
- POJ.2739 Sum of Consecutive Prime Numbers(水)
POJ.2739 Sum of Consecutive Prime Numbers(水) 代码总览 #include <cstdio> #include <cstring> # ...
- 九度OJ 1038:Sum of Factorials(阶乘的和) (DP、递归)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1845 解决:780 题目描述: John von Neumann, b. Dec. 28, 1903, d. Feb. 8, 1957, ...
- LightOJ - 1189 - Sum of Factorials
先上题目 Sum of Factorials Time Limit:500MS Memory Limit:32768KB 64bit IO Format:%lld & %llu ...
随机推荐
- Ajax 异步调用代码
function jsAjax() { var Con; var XmlRequset; var AjaxContent; //返回内容 if (window.XMLHttpRequest) { // ...
- 多线程基本概论multithread
多线程 基本概念 进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 通过 活动监视器 可以查看 Mac 系统中所开启的进程 线程 进程要想 ...
- ETL之增量抽取方式
1.触发器方式 触发器方式是普遍采取的一种增量抽取机制.该方式是根据抽取要求,在要被抽取的源表上建立插入.修改.删除3个触发器,每当源表中的数据发生变化,就被相应的触发器将变化的数据写入一个增量日志表 ...
- scp 跨机远程拷贝
scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器. 命令格式: scp [参数] [原路径] [目标路径] ...
- Oracle private dblink和pubic dblink
DB : 11.2.0.3.0 Oracle DBLINK 创建分为private 和 public dblink,默认创建的为private ; private dblink 只有创建的schema ...
- Hi java新特性
java新特性 1995.5.23 java语言 1996 jdk1.0 250个类在API 主要用在桌面型应用程序1997 jdk1.1 500 图形用户界面编程1998 jdk1.2 2300 J ...
- 今天开始应该使用 5 个JavaScript调试技巧
原文:5 Javascript debugging tips you’ll start using today 我之前使用过用 printf debugging,自此之后我用这种方法似乎总能更快地解决 ...
- Entity Framework 学习第二天 续
今天来写一点不一样的删除,修改,查询 下面只写了几个方法 /// <summary> /// 根据删除条件进行删除 /// </summary> /// <param n ...
- python time,string 转换
1. 将字符串转换成时间,字符串格式为05/16/2015 datetime.datetime.strptime(STRING,"%m/%d/%Y") 2. 将时间转换成字符串:格 ...
- springboot日志
1.日志 Spring Boot内部日志系统使用的是Commons Logging,但开放底层的日志实现.默认为会Java Util Logging, Log4J, Log4J2和Logback提供配 ...