問題概要
問題ページ
-
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()