用c++语言设计一个求阶乘(factorial)的递归函数,函数输入为正整数n,输出为n的阶乘(整数)。在main()函数中实现参数的输入、计算结果的输出。输入时,需进行必要的合法性检测。
时间: 2023-05-22 07:01:10 浏览: 64
好的,以下是求阶乘的递归函数的代码:
```c
#include <stdio.h>
int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
if (n < 0) {
printf("输入的数字不合法!\n");
return 1;
}
printf("%d的阶乘为%d\n", n, factorial(n));
return 0;
}
```
这个函数使用了递归的方式来计算阶乘,如果输入的数字小于0,则会输出错误信息。
相关问题
python编写函数,求一个数n的阶乘,n为键盘输入的正整数
好的,可以使用以下代码定义一个求阶乘的函数:
```python
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
```
这段代码定义了一个名为 `factorial` 的函数,该函数接受一个整数 `n` 作为参数,并返回 `n` 的阶乘。在函数内部,使用递归的方式计算阶乘。如果 `n` 等于 0,则返回结果为 1;否则将 `n` 乘以 `factorial(n-1)` 的结果,即 `n` 的前一个数的阶乘。
接下来,可以使用以下代码实现从键盘输入一个正整数并计算其阶乘:
```python
# 从键盘输入一个正整数
n = int(input("请输入一个正整数:"))
# 调用函数计算阶乘
result = factorial(n)
# 输出结果
print("{} 的阶乘为:{}".format(n, result))
```
这段代码首先使用 `input()` 函数获取用户输入的正整数 `n`,然后调用 `factorial()` 函数计算 `n` 的阶乘,并将结果赋值给变量 `result`。最后使用 `print()` 函数将结果输出。
输入一个正整数n,输出n!的值。求阶乘功能用函数实现。C语言
好的,可以使用以下代码实现:
```c
#include <stdio.h>
// 定义阶乘函数
int factorial(int n) {
if (n == 0 || n == 1) { // 0的阶乘和1的阶乘都是1
return 1;
} else {
return n * factorial(n - 1); // 递归调用自身求解
}
}
int main() {
int n;
printf("请输入一个正整数n:");
scanf("%d", &n);
printf("%d的阶乘为:%d", n, factorial(n));
return 0;
}
```
输入一个正整数n后,程序会调用阶乘函数,输出n!的值。