Python 各桁の和を求める
はじめに
AtCoderのABC0838の問題をしていて、 思いつけなくて悔しかったやり方を見たのでメモ
やりたかったこと
各桁の数字を足した値を求める
strを用いた方法
python、for文で文字列の一文字ずつ順番に参照できることを利用した方法
def digit_sum2(num):
total = 0
for digit in str(num):
total += int(digit)
return total
提出していたコード
digit_sum関数内で、値を10で割った余りを求め、 その後桁をずらす方法で実装していた。
def digit_sum(num):
total_num = 0
while num > 0:
total_num += num % 10
num //= 10
return total_num
num_list= []
n, a, b = map(int, input().split())
for i in range(1,n+1):
num = digit_sum(i)
if num >= a and num <= b:
num_list.append(i)
print(sum(num_list))
さいごに
アルゴリズムの引き出しが上手く開かなかったです。 競プロは他の方の考え方を知れていいですね。