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))
さいごに
アルゴリズムの引き出しが上手く開かなかったです。 競プロは他の方の考え方を知れていいですね。