Python练习题3

题目

阶乘求和:1!+2!+....+20!如何实现?主要讲解4种方式:

  • for循环
  • while循环
  • 函数嵌套
  • for+函数

for

# 两层for循环
sum = 0   # 定义初始值
for i in range(1, 21):
    origin = 1  # 单个阶乘的初始值
    for j in range(1, i+1):
        origin *= j  # 单个数的阶乘
    sum += origin   # 累加求和
print(sum)

while

number = 1   # 单个阶乘的初始值
sum = 0  
i = 1  # 控制次数

while 20 >= i:   # 控制循环的持续,直到20停止
    number *= i    # 单个阶乘
    sum += number
    i += 1
print(sum)

函数嵌套

def digui(n):  # 定义一个单个数的阶乘的递归函数
    if n==1:
        return 1
    else:
        return n * digui(n-1)
    
def jiecheng(digui, n):   # 传入上面的递归函数作为参数之一
    sum = 0
    for i in range(1, n):
        sum += digui(i)  
    return sum
def jiecheng(digui, n):
    def digui(n):
        if n==1:
            return 1
        else:
            return n * digui(n-1)
    sum = 0
    for i in range(1, n):
        sum += digui(i)
    return sum

for+函数嵌套

# 递归函数实现
def digui(n):
    if n==1:
        return 1
    else:
        return n * digui(n-1)    # 实现递归
    
sum = 0 
for i in range(1, 21):  
    sum = sum + digui(i)  # for循环中调用递归函数
print(sum)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容