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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录