규칙을 찾아서 풀어야한다.
1~9 -> 9
10~99 -> 90 2
100~999 -> 900 3
자세히보면 9 (10^자릿수) (자릿수)
from sys import stdin
N = int(stdin.readline())
l = len(str(N))
ans = 0
N의 길이를 저장한다.
for i in range(l - 1):
ans += 9 * 10 ** i * (i+1)
l은 N의 길이이다. l에서 1을 빼주어야한다.
왜냐하면 만약 N이 5이면 l은 1이 들어온다.
1은 10의 자리를 의미하기 때문에
1의 자리를 구하기 위해서는 l에서 1을 빼준다.
print(ans + (N - 10 ** (l-1) + 1) * l)
마지막에 더해주는 이유는 위에서 자릿수를 다 돌고나면 최대 자릿수 -1만큼만 더해지게 된다.
이렇게 해주는 이유는 100의 자리의 마지막이 999가 아닌데 900*3을 해주면 100~999까지의 자릿수가 모두 더해지게 된다.
from sys import stdin
N = int(stdin.readline())
l = len(str(N))
ans = 0
for i in range(l - 1):
ans += 9 * 10 ** i * (i+1)
print(ans + (N - 10 ** (l-1) + 1) * l)