' P '

whatever I will forget

python 10進数の各桁の足し算

atcoder.jp

解法1

  • よく出現するものであるので関数を作っておく
n, a, b = map(int, input().split())

def calc_num_sum(number):
    sum = 0
    while (number > 0):
        sum += number % 10
        number //= 10
    return sum

ans = 0
for i in range(1, n+1):
    if a <= calc_num_sum(i) <= b:
        ans += i

print(ans)

解法2

  • pythonの関数を使って解く(こちらのほうが遅い)

  • intをstrに変換

  • map()strip()でintのlistに変換
  • listの値をsumする
n, a, b = map(int, input().split())
ans = 0
for i in range(1, n+1):
    sumNum = sum(list(map(int,str(i).strip())))
    if a <= sumNum and sumNum <= b:
        ans += i
print(ans)