1부터 N까지의 수를 이어서 쓰면 다음과 같이 새로운 하나의 수를 얻을 수 있다.
1234567891011121314151617181920212223...
이렇게 만들어진 새로운 수는 몇 자리 수일까? 이 수의 자릿수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다.
출력
첫째 줄에 새로운 수의 자릿수를 출력한다.
예제 입력 1
5 |
예제 출력 1
5 |
예제 입력 2
15 |
예제 출력 2
21 |
예제 입력 3
120 |
예제 출력 3
252 |
더보기
Solution
#include<stdio.h>
int main(void)
{
int N, count=0, table[9]={1,10,100,1000,10000,100000,1000000,10000000,100000000};
scanf("%d", &N);
for(int n=1;n<=N;n++)
for(int i=8;i>=0;i--)
if(n>=table[i])
{
count+=i+1;
break;
}
printf("%d\n", count);
return 0;
}
728x90
'백준 알고리즘' 카테고리의 다른 글
<백준 알고리즘> 1459번: 걷기 (0) | 2023.02.06 |
---|---|
<백준 알고리즘> 20152번: Game Addiction (1) | 2023.02.06 |
<백준 알고리즘> 18883번: N M 찍기 (1) | 2023.02.06 |
<백준 알고리즘> 1182번: 부분수열의 합 (0) | 2023.02.06 |
<백준 알고리즘> 24511번: queuestack (0) | 2023.02.05 |