下面是一个使用递归函数计算一个数的阶乘的示例代码:
#include <stdio.h>
unsigned long long factorial(unsigned int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
unsigned int number;
printf("请输入一个非负整数:");
scanf("%u", &number);
unsigned long long result = factorial(number);
printf("%u的阶乘为:%llu\n", number, result);
return 0;
}
在这个示例中,我们定义了一个递归函数factorial
,它接受一个无符号整数n
作为参数,并返回n
的阶乘。
递归函数的终止条件是当n
等于0时,返回1。否则,调用函数自身并乘以n
,以求得n
的阶乘。
在main
函数中,我们先输入一个非负整数作为要计算阶乘的数,然后调用factorial
函数计算阶乘,并将结果存储在result
变量中。
最后,使用printf
函数输出计算结果。
当你运行这个程序时,它将提示你输入一个非负整数,并输出该数的阶乘。
例如,如果输入5,则输出:
5的阶乘为:120
请注意,由于阶乘的结果可能非常大,因此我们使用了unsigned long long
类型来存储计算结果,以确保能够容纳较大的阶乘值。