贪心算法之——阶乘之和(nyoj91)
admin
2024-03-17 01:10:24

阶乘之和

时间限制:3000 ms  |  内存限制:65535 KB难度:3

描述

给你一个非负数整数n,判断n是不是一些数(这些数不允许重复使用,且为正数)的阶乘之和,如9=1!+2!+3!,如果是,则输出Yes,否则输出No;

输入

第一行有一个整数0 每组测试数据有一个正整数n<1000000;

输出

如果符合条件,输出Yes,否则输出No(注意大小写);

样例输入

2
9
10

样例输出

Yes
No

提示:首先把阶乘小于1000000的数列出来,然后怎样去判断一个数是不是这些数的阶乘之和呢?

题目中有一个很重要的信息叫做,没个数只能用一次。这就告诉我们只需单向遍历数组就够了。一个数要是这些数的和,那肯定是比他小的数累加得来的,而阶乘数之间存在着倍数关系,所以每次只用查找比n小的最大阶乘数。

 
#include 
using namespace std;
int s[9] = {1,2,6,24,120,720,5040,40320,362880};int main()
{int t, n;scanf("%d", &t);while(t--){scanf("%d"

相关内容

热门资讯

我国已具备大型LNG运输船的自... 格隆汇1月12日|据央视,这两天,在上海中船沪东中华造船,一艘采用了全球最新一代双燃料低速推进动力系...
拓邦股份涨2.28%,成交额3... 1月12日,拓邦股份盘中上涨2.28%,截至13:00,报14.36元/股,成交3.66亿元,换手率...
日发精机涨2.04%,成交额1... 1月12日,日发精机盘中上涨2.04%,截至13:00,报6.49元/股,成交1.67亿元,换手率3...
西安饮食涨2.08%,成交额1... 1月12日,西安饮食盘中上涨2.08%,截至13:00,报9.34元/股,成交1.64亿元,换手率3...
一部戏挣几十万不够养家?闫学晶... 文丨崔桂忠 一部戏挣几十万不够养家?近日,演员闫学晶因相关言论陷入舆论风波,随后其社交账号被平台处置...