题目描述
有些数可以表示成若干个不同阶乘的和。例如,9=1!+2!+3!。小明对这些数很感兴趣,所以他给你一个正整数n,想让你告诉他这个数是否可以表示成若干个不同阶乘的和。
输入
输入包含多组测试数据。每组输入为一个非负整数n(n<=1000000),当n为负数时,输入结束。
输出
对于每组输入,如果n可以表示成若干个不同阶乘的和,则输出YES,否则输出NO。
样例输入
9 -1
样例输出
YES
代码:
#include<stdio.h>
int main()
{
int n,i,a[10]={1,1,2,6,24,120,720,5040,40320,362880};//10以内的阶乘值
while(scanf("%d",&n)!=EOF && n>=0)
{
if(n==0)
printf("NO\n");