编写一个程序,输入一个数字并输出其阶乘
1. 使用 for 循环计算阶乘
# 输入一个数字
num = int(input("请输入一个数字: "))
# 初始化阶乘结果
factorial = 1
# 计算阶乘
for i in range(1, num + 1):
factorial *= i
# 输出结果
print(f"{num} 的阶乘是 {factorial}")
2. 使用递归计算阶乘
def factorial(n):
if n == 0 or n == 1:
return 1
else:
return n * factorial(n - 1)
# 输入一个数字
num = int(input("请输入一个数字: "))
# 输出结果
print(f"{num} 的阶乘是 {factorial(num)}")
解释:
- 第一种方法:使用 for 循环从 1 到 num 依次相乘,得到阶乘。
- 第二种方法:通过递归函数实现,每次递归计算当前数字与其前一个数字的阶乘,直到 n == 0 或 n == 1 时返回 1。
总结:
两种方法都可以计算数字的阶乘,你可以根据自己的喜好选择使用循环还是递归。需要注意的是,递归方法在数字较大的时候可能会导致栈溢出错误(RecursionError),这时使用循环方法更为安全。