Edit

【pythonでABC195を解説】C - Comma

問題概要

問題ページ

C - Comma
C - Comma

問題ページへ移動する

問題文

高橋君は整数を書くとき、下から \(3\) 桁ごとにコンマで区切って書きます。例えば \(1234567\) であれば 1,234,567、\(777\) であれば 777 と書きます。

高橋君が \(1\) 以上 \(N\) 以下の整数を \(1\) 度ずつ書くとき、コンマは合計で何回書かれますか?

制約

  • \(1 \leq N \leq 10^{15}\)
  • \(N\) は整数

問題の考察

ACコード

import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    n = int(input().rstrip('\n'))
    if n <= 999:
        print(0)
    else:
        cnt = 0
        for i in range(3, 20):
            if pow(10, i) > n:
                cnt += (min(pow(10, i), n) - pow(10, i - 1) + 1) * ((i - 1) // 3)
                break
            else:
                cnt += (pow(10, i) - pow(10, i - 1)) * ((i - 1) // 3)
        print(cnt)


if __name__ == '__main__':
    solve()

-Edit
-