Python 递归与循环实现阶乘计算 - 限制输入范围并输出详细过程
Python 递归与循环实现阶乘计算 - 限制输入范围并输出详细过程
本文将介绍使用 Python 递归和循环两种方法来计算阶乘,并限制输入数据在 1-10 之间,对无效输入进行提示。此外,我们将展示详细的计算过程,例如 4! = 123*4 = 24。
使用递归实现
def factorial_recursive(n):
if n < 1 or n > 10:
print('输入的数据无效,请输入 1-10 之间的数字!')
return
if n == 1:
return 1
else:
return n * factorial_recursive(n-1)
n = int(input('请输入一个 1-10 之间的数字:'))
result = factorial_recursive(n)
if result:
print(f'{n}! = ', end='')
for i in range(1, n+1):
if i != n:
print(f'{i}*', end='')
else:
print(f'{i} =', end='')
print(result)
使用循环实现
def factorial_loop(n):
if n < 1 or n > 10:
print('输入的数据无效,请输入 1-10 之间的数字!')
return
result = 1
for i in range(1, n+1):
result *= i
return result
n = int(input('请输入一个 1-10 之间的数字:'))
result = factorial_loop(n)
if result:
print(f'{n}! = ', end='')
for i in range(1, n+1):
if i != n:
print(f'{i}*', end='')
else:
print(f'{i} =', end='')
print(result)
通过以上两种方法,我们实现了对输入数据进行验证、计算阶乘并输出详细过程的功能。这两种方法各有优劣,递归方法简洁明了,但对于大型数据可能会造成堆栈溢出;循环方法效率更高,但代码相对复杂。选择合适的方案取决于具体的需求。
原文地址: https://www.cveoy.top/t/topic/o1Ci 著作权归作者所有。请勿转载和采集!