給定兩個均不超過9的正整數a和n,要求編寫程序求a+aa+aaa++⋯+aa⋯a(n個a)之和。
輸入格式:
輸入在一行中給出不超過9的正整數a和n。
輸出格式:
在一行中按照“s = 對應的和”的格式輸出。
代碼如下:
#!/usr/bin/python # -*- coding: utf-8 -*- a,n=map(int,input().split()) #print("s = {:d}".format(sum([int(str(a)*i) for i in range(1,n+1)]))) sum = 0 for i in range(1,n+1): sum = sum +int(str(a)*i) print("s =",sum)
注釋的那一行是百度CSDN一位大佬寫的。剛開始看到題目,看了半天發現這個規律用普通的算數很難做到,於是請教了下百度。
前面說過,format()函數是將字符串格式化,{:d}是進行十進制轉換,其實不轉換也可以,大佬比較嚴謹,
print("s =",sum([int(str(a)*i) for i in range(1,n+1)]))
說下這個程序,簡單來說就是將數值a轉換為字符然后*i進行擴充,在轉換為數值進行計算。
測試如下:字符*數值,就是幾個字符堆在一起。
讀書和健身總有一個在路上