从键盘输入一个正整数,计算并输出其阶乘。要求通过递归函数来实现这个功能。
时间: 2023-08-12 16:05:01 浏览: 107
好的,以下是 Python 代码实现:
```python
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n-1)
n = int(input("请输入一个正整数:"))
print("{} 的阶乘是 {}".format(n, factorial(n)))
```
在这个程序中,我们定义了一个名为 `factorial` 的递归函数,用于计算给定正整数的阶乘。如果传入的参数 `n` 等于 1,那么阶乘就是 1;否则,我们就将 `n` 乘以 `factorial(n-1)` ,这样就可以逐层递归计算阶乘了。
最后,我们通过输入函数获取用户输入的正整数,然后调用 `factorial` 函数,并使用 `print` 函数输出结果。
相关问题
从键盘输入一个正整数,计算并输出其阶乘。要求通过递归函数来实现这个功能。 定义两个函数,分别用于实现加法和减法运算。要求定义一个装饰器,为所定义的前两个函数添加参数输出功能。
以下是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` 的阶乘并输出结果。
阅读全文