문제
1부터 N까지의 수를 이어서 쓰면 다음과 같이 새로운 하나의 수를 얻을 수 있다.
1234567891011121314151617181920212223...
이렇게 만들어진 새로운 수는 몇 자리 수일까? 이 수의 자릿수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다.
출력
첫째 줄에 새로운 수의 자릿수를 출력한다.
나의 답
#include <bits/stdc++.h>
using namespace std;
int main(void) {
int N;
scanf("%d", &N);
int result = 0;
for(int multiValue = 1, currentValue = 9; N > 0; multiValue++, currentValue*=10) {
if(N - currentValue >= 0) {
result += currentValue * multiValue;
N -= currentValue;
}
else{
result += N * multiValue;
N = 0;
}
}
printf("%d\n", result);
return 0;
}
'백준' 카테고리의 다른 글
[14500번] 테트로미노 (0) | 2021.12.02 |
---|---|
[6064번] 카잉 달력 (0) | 2021.12.01 |
[1476번] 날짜 계산 (0) | 2021.11.26 |
[3085번] 사탕 게임 (0) | 2021.11.25 |
[2309번] 일곱 난쟁이 (0) | 2021.11.21 |