#include <stdio.h>#include <stdlib.h>int f(int n){ if(n==0||n==1) return 1; return n*f(n-1);}int main(){ int n,k,i; scanf("%d",&k); for(i=0;i<k;i++) { scanf("%d",&n); printf("%d\n",f(n)); }}为什么输入20和20以上的数字的时候阶乘无法求出?输出是负数。