递推
这是一个输出阶乘结果的函数
递推的代码更加简洁易读 但占用内存较循环一般更大 要注意结束条件的书写 否则会导致代码报错
#include <stdio.h>
// 递归函数,用于计算阶乘
unsigned long long factorial(unsigned int n) {
if (n == 0) {
// 基本情况:0的阶乘是1
return 1;
} else {
// 递归步骤:n的阶乘是n乘以(n-1)的阶乘
return n * factorial(n - 1);
}
}
int main() {
unsigned int number;
// 提示用户输入一个非负整数
printf("Enter a non-negative integer: ");
scanf("%u", &number);
// 检查输入是否为0或负数
if (number < 0) {
printf("Factorial of a negative number is undefined.\n");
} else {
// 调用递归函数并打印结果
printf("Factorial of %u is %llu.\n", number, factorial(number));
}
return 0;
}