求助 一道小问题
#include <stdio.h>long fun(long x)//求阶乘
{
return x<2?1:x*fun(x-1);
}
int main()//假如n等于某阶乘和就输出YES 否则 NO
{
long n,sum;
int state, i;
while(scanf("ld",&n)&&n>0)
{
state=sum=0;
for(i=1;i<=n;i++)
{
sum+=fun(i);
if(sum==n) {state=1;break;}
}
if(state) printf("YES\n");
else printf("NO\n");
}
return 0;
}
为什么我 输入9 就结束了????应该输出YES的