第一题搞了一下午也没看懂Eastum里的双层if什么意思……
根据Eastum的该的我自己能看懂的
#include <stdio.h>
main()
{ int f,c,h;
long n;
while(scanf("%ld",&n)!=EOF&&n>=0)
{ h=1;
while(n)
{ f=c=1;
while(n>f*c)
f*=c++;
if((n-f)>f)
{
h=0;
break;
}
else n-=f;
}
printf(h?"YES\n":"NO\n");
}
}