求阶乘的c语言代码
c#include <stdio.h>
// 函数声明:计算阶乘
unsigned long long factorial(int n);
int main() {
int num;
printf("请输入一个非负整数:");
scanf("%d", &num);
if (num < 0) {
printf("输入无效,阶乘只能计算非负整数。\n");
} else {
unsigned long long result = factorial(num);
printf("%d 的阶乘是 %llu\n", num, result);
}
return 0;
}
// 函数定义:计算阶乘
unsigned long long factorial(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
此代码包含一个用于计算阶乘的递归函数factorial
,以及一个主函数,用于获取用户输入并显示计算结果。用户输入一个非负整数,程序将计算该整数的阶乘并显示结果。
c#include <stdio.h>
// 函数声明:计算阶乘
unsigned long long factorial(int n);
int main() {
int num;
printf("请输入一个非负整数:");
scanf("%d", &num);
if (num < 0) {
printf("输入无效,阶乘只能计算非负整数。\n");
} else {
unsigned long long result = factorial(num);
printf("%d 的阶乘是 %llu\n", num, result);
}
return 0;
}
// 函数定义:计算阶乘
unsigned long long factorial(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
使用此程序,您可以输入一个非负整数,然后它将计算并显示该整数的阶乘。如果输入无效,它会显示错误消息。示例输出如下:
请输入一个非负整数:5 5 的阶乘是 120
这个程序使用了递归来计算阶乘,但对于非常大的输入值,可能会导致堆栈溢出。在实际应用中,您可能需要考虑使用循环或其他更高效的算法来计算大数的阶乘。