美文网首页
阶乘练习题

阶乘练习题

作者: 测试探索 | 来源:发表于2022-11-15 16:04 被阅读0次

    第一题:n个自然数的立方和

    计算公式 13 + 23 + 33 + 43 + …….+ n3
    实现要求:
    输入 : n = 5
    输出 : 225
    对应的公式 : 13 + 23 + 33 + 43 + 53 = 225

    第一种方法:普通for循环

    s1 = 0
    for a in range(1,6):
        s1 += a ** 3
    print(s1)
    

    第二种方法:reduce与lambda结合

    from functools import reduce
    a = reduce(lambda x,y:x + y**3,range(1,6))
    print(a)
    

    第三种方法:递归

    def num(n):
        if n  == 1:
            return 1 ** 3
        else:
            return n**3 + num(n - 1)
            # 第一步: 函数num传参n = 5 --> 5 ** 3 + num(4)
            # 第二步操作num(4): 函数num传参n = 4 --> 5 ** 3 + 4 **3 + num(3)
            # 第三部操作num(3):  函数num传参 n = 3 --> 5 **3 + 4 **3 + c **3 + num(2)
            # ....
    
    print(num(5))
    

    第二题:求10!

    第一种方法:普通的for循环

    s = 1
    for i in range(1, 11):
        s *= i
        print(s)
    print(s)
    #结果
    3628800
    

    第二种方法:reduce与lambda结合

    from functools import reduce
    a = reduce(lambda x,y:x *y ,range(1,11))
    print(a)
    

    第三种方法:递归

    def num(n):
    
        if n == 0:
    
            return 1
    
        else:
    
            return n * num(n - 1)
    
    print(num(10))
    

    第三题:求1+2!+3!+...+10!的和

    结果:4037913

    第一种方法:for循环

    s = 1
    a = []
    for i in range(1, 11):
        s *= i
        a.append(s)
    print(sum(a))
    

    第二种方法:递归

    def fact(i):
        if i == 1:
            return  1
        else:
            return  i*fact(i-1)
        
    b = []
    for i in range(1,11):
        b.append(fact(i))
    print(sum(b))
    

    相关文章

      网友评论

          本文标题:阶乘练习题

          本文链接:https://www.haomeiwen.com/subject/wrrdxdtx.html