在C語言中,你可以使用遞歸函數來實現階乘
#include <stdio.h>
// 遞歸函數實現階乘
unsigned long long factorial(unsigned int n) {
if (n == 0) {
return 1; // 0的階乘為1
} else {
return n * factorial(n - 1); // 遞歸調用,n的階乘等于n乘以(n-1)的階乘
}
}
int main() {
unsigned int number;
printf("請輸入一個非負整數: ");
scanf("%u", &number);
// 檢查輸入是否為非負整數
if (number < 0) {
printf("輸入錯誤,請輸入一個非負整數。\n");
} else {
unsigned long long result = factorial(number);
printf("%u的階乘為: %llu\n", number, result);
}
return 0;
}
這個程序首先定義了一個名為factorial
的遞歸函數,該函數接受一個無符號整數n
作為參數。如果n
為0,函數返回1,因為0的階乘為1。否則,函數返回n
乘以factorial(n - 1)
的結果,這是遞歸調用的關鍵部分。
在main
函數中,我們從用戶那里獲取一個非負整數,然后調用factorial
函數計算其階乘,并將結果輸出到屏幕上。