python3练习100题——018

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

题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。

分析:求和很容易,关键是计算出每一项的值。我用了循环来迭代计算每一项的值。

我的代码:

def fun():
    a=int(input("please input a number:"))
    b=int(input("How many numbers to add:"))
    c=a
    total=0
    while b >0:        #用wihle循环,计算出每项,并累加
        print(c)
        total +=c
        c=c*10+a       #用c迭代出每项的值,a要保留做个位!
        b-=1
    return total


if __name__ =='__main__':
    print(fun())
        

思考:

看到原题的答案,是先用循环将每项算出来,再用reduce函数累加。

而我写的代码能够在每一次循环中算出一项,再加起来,其实更方便。

posted @ 2018-06-05 13:47  Drifter_y  阅读(816)  评论(0编辑  收藏  举报