zoukankan      html  css  js  c++  java
  • python3练习100题——025

    原题链接:http://www.runoob.com/python/python-exercise-example25.html

    题目:求1+2!+3!+...+20!的和。

    我的代码:

    s =[]
    for i in range(1,21):
        num=1
        for n in range(1,i+1):
            num *=n
        ls.append(num)
    print(ls)
    print(sum(ls))

    用了两个循环,其实不好。看到用map的,打算重写一下。

    l=range(1,21)
    def f(x):
        num=1
        for i in range(1,x+1):
            num*=i
        return num          #不能说yield
    
    s=sum(map(f,l))
    print(s)

    第二天,看到了用两个递归的,学写了一下:

    def prod(x):
        if x==1:
            return 1
        else:
            return x*prod(x-1)
    
    def ad(x):
        if x==1:
            return prod(1)
        else:
            return prod(x)+ad(x-1)        #这一行运行了两个函数,有点想不到

    递归就是 有一个出口:类似x==1 return

    然后else运行的内容要包括函数本身。

    感觉这道题让我对递归的思想有了更深入的了解。

  • 相关阅读:
    第四次作业
    第三次作业
    Java.14
    Java.13
    JAVA.12
    JAVA.11
    JAVA.10
    JAVA.9
    JAVA.8
    JAVA.7
  • 原文地址:https://www.cnblogs.com/drifter/p/9181789.html
Copyright © 2011-2022 走看看