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