-
Notifications
You must be signed in to change notification settings - Fork 0
/
12_숫자의 총 개수(large)_코드 정형화.cpp
40 lines (37 loc) · 1.27 KB
/
12_숫자의 총 개수(large)_코드 정형화.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/*
12.숫자의 총 개수(large)
자연수 N이 입력되면 1부터 N까지의 자연수를 종이에 적을 때 각 숫자는 몇 개 쓰였을까요?
예를 들어 1부터 15까지는 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5으로
총 21개가 쓰였음을 알 수 있습니다.
자연수 N이 입력되면 1부터 N까지 각 숫자는 몇 개가 사용되었는지를 구하는 프로그램을 작
성하세요.
▣ 입력설명
첫 번째 줄에는 자연수 N(3<=N<=100,000,000)이 주어진다.
▣ 출력설명
첫 번째 줄에 숫자의 총개수를 출력한다.
*/
#include <iostream>
int main() {
int N, sum = 0;
scanf("%d", &N);
if(N>99999999)
sum = 9 + 90 * 2 + 900 * 3 + 9000 * 4 + 90000 * 5 + 900000 * 6 + 9000000 * 7 + 90000000 * 8+9;
else if (N > 9999999)
sum = 9 + 90 * 2 + 900 * 3 + 9000 * 4 + 90000 * 5 + 900000 * 6 + 9000000 * 7+ (N - 10000000 + 1)*8;
else if(N > 999999)
sum = 9 + 90 * 2 + 900 * 3 + 9000 * 4 + 90000 * 5 + 900000 * 6+ (N - 1000000 + 1)*7;
else if (N > 99999)
sum = 9 + 90 * 2 + 900 * 3 + 9000 * 4 + 90000 * 5 + (N - 100000 + 1)*6;
else if (N > 9999)
sum = 9 + 90 * 2 + 900 * 3 + 9000 * 4 + (N - 10000 + 1) * 5;
else if (N > 999)
sum = 9 + 90 * 2 + 900 * 3 + (N - 1000 + 1) * 4;
else if (N > 99)
sum = 9 + 90 * 2 + (N - 100 + 1) * 3;
else if (N > 9)
sum = 9 + (N - 10 + 1) * 2;
else
sum = N * 1;
printf("%d", sum);
}
// 제곱은 pow로 계산 (cmath)