开发者社区 问答 正文

2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

展开
收起
珍宝珠 2019-11-19 15:51:52 4515 分享 版权
1 条回答
写回答
取消 提交回答
  • 方法一:
    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    a = 2.0
    b = 1.0
    s = 0
    for n in range(1,21):
        s += a / b
        t = a
        a = a + b
        b = t
    print s
    
    
    方法二:
    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    a = 2.0
    b = 1.0
    s = 0.0
    for n in range(1,21):
        s += a / b
        b,a = a , a + b
    print s
    
    s = 0.0
    for n in range(1,21):
        s += a / b
        b,a = a , a + b
    print s
    
    
    方法三:
    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    a = 2.0
    b = 1.0
    l = []
    l.append(a / b)
    for n in range(1,20):
        b,a = a,a + b
        l.append(a / b)
    print reduce(lambda x,y: x + y,l)
    
    

    以上实例输出结果为:

    32.6602607986
    
    2019-11-19 15:53:53
    赞同 展开评论
问答地址: