使用函式求特殊 a a a串數列和 (10分)
給定兩個均不超過9的正整數 a a a和 n n n,要求撰寫函式 f n ( a , n ) fn(a,n) fn(a,n) 求 a + a a + a a a + + ? + a a ? a a a+aa+aaa++?+aa?aa a+aa+aaa++?+aa?aa( n n n個 a a a)之和, f n fn fn須回傳的是數列和
函式介面定義:
f n ( a , n ) fn(a,n) fn(a,n)其中 a a a 和 n n n 都是用戶傳入的引數, a a a 的值在 [ 1 , 9 ] [1, 9] [1,9]范圍; n n n 是 [ 1 , 9 ] [1, 9] [1,9]區間內的個位數,函式須回傳級數和
裁判測驗程式樣例:
/* 請在這里填寫答案 */
a,b=input().split()
s=fn(int(a),int(b))
print(s)
輸入樣例:
在這里給出一組輸入,例如:
2 3
輸出樣例:
246
Python
先計算a、aa、aaa再將這幾個數相加
這種是比較麻煩的做法,先通過for回圈,將2,22,222表示出來,再通過for回圈將已經表示出的變數相加,
def fn(a, n):
sum = 0
for i in range(n):
s = 0
q = 0.1 # 記錄10次方
for j in range(i + 1):
q = q * 10
p = int(q) * a
s = s + p
sum = sum + s
return sum
每次記錄
通過觀察網路上的代碼,其實問題可以簡化,這個和可以這么表示,2,20+2,200+22的加和
def fn(a, n):
sum, res = 0, 0
for i in range(1, n + 1):
res = res + a
a = a * 10
sum = res + sum
return sum
快速字串轉整型
暴力構造相同字串 a a a aaa aaa轉化為int型別
def fn(a, n):
return sum(int(str(a) * i) for i in range(1, n + 1))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/11585.html
標籤:其他
上一篇:Nginx快取
下一篇:python進階高級(推薦)
