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函数累加。
而我写的代码能够在每一次循环中算出一项,再加起来,其实更方便。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步