/*为什么输入的n超过20之后就出现了负数,甚至还有0的出现?望解答*/
#include<stdio.h>
int sum(int n)
{
long long unsigned int b;
if(n==1||n==0) {b=1;}
else {b=n*sum(n-1);}
return b;
}
main()
{ int n;
while(1)
{
printf("\n请输入N的值:");
scanf("%d",&n);
printf("\nN!=%d\n",sum(n));
}
}/*这是用递归方式求N!*/