您的位置:首页 > 其它

南阳91 阶乘之和

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

输入第一行有一个整数0<m<100,表示有m组测试数据;

每组测试数据有一个正整数n<1000000;输出如果符合条件,输出Yes,否则输出No;样例输入
2910

样例输出
Yes


No




#include<stdio.h>

int a[15];
int i;
void fun()
{
	
	a[1]=1;
	for(i=2;i<10;++i)
	{
		a[i]=a[i-1]*i;
	}
}
int main()
{
	fun();
	int t;
	int n;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d",&n);
		int flag=0;
		for(i=9;i>0;--i)
		{
			if(n>=a[i])
				n-=a[i];
			if(n==0)
			{				
				flag=1;
			}
		}
		if(flag)
		{
			printf("Yes\n");
		}
		else
		{
			printf("No\n");
		}
	}
	return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: