문제
1부터 N까지의 수를 이어서 쓰면 다음과 같이 새로운 하나의 수를 얻을 수 있다.
1234567891011121314151617181920212223...
이렇게 만들어진 새로운 수는 몇 자리 수일까? 이 수의 자릿수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다.
출력
첫째 줄에 새로운 수의 자릿수를 출력한다.
Solved.ac 레벨
실버 IV
풀이
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n;
int cnt = 0;
cin >> n;
if(n < 10){
cout << n << '\n';
return 0;
}
for(int i = 1; i <= n; i *= 10){
cnt += n - i + 1;
}
cout << cnt << "\n";
return 0;
}
'Study (etc) > Problem Solving' 카테고리의 다른 글
[BOJ / C++] 2530번 : 인공지능 시계 (0) | 2023.01.03 |
---|---|
[BOJ / C++] 10162번 : 전자레인지 (0) | 2023.01.03 |
[BOJ / C++] 24736번 : Football Scoring (0) | 2023.01.03 |
[BOJ / Python] 16099번 : Larger Sport Facility (0) | 2023.01.03 |
[BOJ / C++] 1476번 : 날짜 계산 (0) | 2022.12.28 |