例如:2+22+222+2222+22222(此時共有5個數字相加),這里具體幾個數字由鍵盤控制
方法一:普通做法
1 a = int(input("計算要加的數(1-9之間數):")) 2 count = int(input("總共要加多少次:")) 3 sumall = 0 #c初始化最終所求的和 4 for i in range(1,count+1): 5 s = 0 #臨時用的變量 6 for j in range(i): 7 s = s + 10 ** j #先計算10**0 8 sumall = sumall + (a * s) #再計算a*s 9 print(sumall)
執行結果:
計算要加的數(1-9之間數):2 總共要加多少次:3 2 24 246
進階版,起始就是利用了函數
1 a = int(input("計算要加的數(1-9之間數):")) 2 list1 = [a] 3 count = int(input("總共要加多少次:")) 4 sumall = 0 5 def sum_one(a,count): 6 for i in range(1,count): 7 new_a = list1[-1] + a*(10**i) 8 list1.append(new_a) 9 return list1 10 print(sum_one(a,count)) 11 12 for i in list1: 13 sumall += i 14 print(sumall)
執行結果:
計算要加的數(1-9之間數):2 總共要加多少次:2 [2, 22] 24
再來改下:
1 from functools import reduce #python3的reduce內置函數使用時必須導入 2 3 a = int(input("計算要加的數(1-9之間數):")) 4 list1 = [a] 5 count = int(input("總共要加多少次:")) 6 sumall = 0 7 def sum_one(a,count): 8 for i in range(1,count): 9 new_a = list1[-1] + a*(10**i) 10 list1.append(new_a) 11 return list1 12 print(sum_one(a,count)) 13 14 sumall = reduce(lambda arg1, arg2: arg1 + arg2, list1) 15 print(sumall) 16
執行結果:
計算要加的數(1-9之間數):2 總共要加多少次:2 [2, 22] 24
方法二:遞歸
1 a = int(input("計算要加的數(1-9之間數):")) 2 count = int(input("總共要加多少次:")) 3 sumall = 0 4 def sum_one(a,count): 5 count1 = count - 1 6 if count == 1: 7 return a 8 else: 9 return sum_one(a,count1) + a *(10**(count1)) 10 print("第{}的結果是{}".format(count,sum_one(a,count)))
執行結果:
計算要加的數(1-9之間數):2 總共要加多少次:5 第5的結果是22222
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。