要求将求阶乘定义为函数(使用两种方案实现),主程序中分别调用两个函数实现计算,最后输出对比结果。
(1)函数fact1用循环实现求阶乘。
(2)函数fact2用递归实现求阶乘。
第一问不是很清楚,第二问我自己试了一下代码,感觉不太对,有没有人能帮一下忙?
要求将求阶乘定义为函数(使用两种方案实现),主程序中分别调用两个函数实现计算,最后输出对比结果。
(1)函数fact1用循环实现求阶乘。
(2)函数fact2用递归实现求阶乘。
第一问不是很清楚,第二问我自己试了一下代码,感觉不太对,有没有人能帮一下忙?
给个例子参考:
def fact1(n):
sum = 0
print('用循环求阶乘的计算结果:')
for i in range(1, n+1):
m = 1
for j in range(1,i+1):
m = m*j
sum = sum+m
if i<n:
print(f'{i}!', end=' +')
else:
print(f'{i}!的值为{sum}')
def fact2(n,n1,sum):
if n==1:
print('用递归求阶乘的计算结果:')
for i in range(1,n1):
print(f'{i}!', end=' +')
print(f'{n1}!的值为{sum+1}')
else:
m = 1
for j in range(1,n+1):
m = m*j
sum += m
fact2(n-1,n1,sum)
n = int(input('请输入一个正整数'))
fact1(n)
fact2(n,n,0)