/*为什么输入的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!*/