从键盘输入一个正整数,计算并输出其阶乘。要求通过递归函数来实现这个功能。
时间: 2023-07-15 17:15:25 浏览: 139
好的,以下是 Python 语言实现的递归阶乘函数:
```python
def fact(n):
if n == 1:
return 1
else:
return n * fact(n-1)
```
这个函数的思路很简单:如果输入的数字 n 等于 1,那么它的阶乘就是 1;否则,它的阶乘就是 n 乘以比它小 1 的数字的阶乘。
接下来,我们可以使用 input() 函数获取用户输入的正整数,并调用上面的函数计算阶乘,最后输出结果。完整代码如下:
```python
def fact(n):
if n == 1:
return 1
else:
return n * fact(n-1)
n = int(input("请输入一个正整数:"))
result = fact(n)
print("{} 的阶乘是 {}".format(n, result))
```
你可以尝试输入不同的正整数,看看程序是否能够正确计算出它们的阶乘。
相关问题
从键盘输入一个正整数,计算并输出其阶乘。要求通过递归函数来实现这个功能。 定义两个函数,分别用于实现加法和减法运算。要求定义一个装饰器,为所定义的前两个函数添加参数输出功能。
以下是Python代码实现:
```python
# 定义装饰器,为函数添加参数输出功能
def add_output(func):
def wrapper(*args):
result = func(*args)
print("函数%s的计算结果为:%s" % (func.__name__, result))
return result
return wrapper
# 定义加法函数,并添加参数输出装饰器
@add_output
def add(x, y):
return x + y
# 定义减法函数,并添加参数输出装饰器
@add_output
def sub(x, y):
return x - y
# 定义递归函数,计算正整数的阶乘
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n - 1)
# 从键盘输入一个正整数
n = int(input("请输入一个正整数:"))
# 计算并输出该正整数的阶乘
factorial_result = factorial(n)
print("%d的阶乘为:%d" % (n, factorial_result))
```
运行结果示例:
```
请输入一个正整数:6
函数factorial的计算结果为:720
6的阶乘为:720
```
C语言编程实现计算n! 要求: 定义一个函数,用于递归计算一个数的阶乘。 从键盘上输入一个正整数n,在main函数中调用自己定义的函数,输出结果。
好的,以下是C语言的代码实现:
```c
#include <stdio.h>
int factorial(int n) {
if (n == 1) { // 递归结束条件
return 1;
} else {
return n * factorial(n - 1); // 递归调用自身
}
}
int main() {
int n;
printf("请输入一个正整数n:");
scanf("%d", &n);
printf("%d的阶乘为%d\n", n, factorial(n));
return 0;
}
```
这段代码中,`factorial` 函数用于递归计算阶乘,接受一个整数参数 `n`,如果 `n` 等于 1,则返回 1,否则返回 `n` 乘上 `factorial(n-1)` 的结果,也就是递归调用自身。在 `main` 函数中,先从键盘读入一个正整数 `n`,然后调用 `factorial` 函数计算 `n` 的阶乘并输出结果。
阅读全文