728x90
문제
1부터 N까지의 수를 이어서 쓰면 다음과 같이 새로운 하나의 수를 얻을 수 있다.
1234567891011121314151617181920212223...
이렇게 만들어진 새로운 수는 몇 자리 수일까? 이 수의 자릿수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다.
출력
첫째 줄에 새로운 수의 자릿수를 출력한다.
예제 입력 1
5
예제 출력 1
5
예제 입력 2
15
예제 출력 2
21
예제 입력 3
120
예제 출력 3
252
#코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
import sys
if __name__ == "__main__":
input = sys.stdin.readline
n = int(input())
sum_val_1 = 0
sum_val_2 = 0
n_str = str(n)
for i in range(1, len(n_str)):
mul_val = 1
for j in range(1, i):
mul_val*=10
sum_val_1+=9*mul_val*i
sum_val_2+=9*mul_val
sum_val_2 = (n - sum_val_2)*(len(n_str))
print(sum_val_1 + sum_val_2)
|
cs |
반응형