求20以內n的階乘。
Input
只有一行輸入,整數n(n<=20)。
Output
只有一行輸出,數值n!。
Sample Input
16
Sample Output
20922789888000
思路:
水題,需要注意的只有不能使用int類型,要使用long long 類型;long long 的表示範圍是 -2^63~+(2^63-1);int的表示範圍是-2^31~+(2^31-1),若超出這個範圍就只能使用大整數來解決了:大整數
詳細變量類型取值範圍參考:C語言變量類型及其表示範圍
程序代碼:
#include<cstdio>
typedef long long ll;
ll fbci(int n){
if(n==1){
return 1;
}else{
return n*fbci(n-1);
}
}
int main(){
int n;
scanf("%d",&n);
printf("%lld\n",fbci(n));
return 0;
}
運行結果: