1부터 N까지의 수를 이어서 쓰면 다음과 같이 새로운 하나의 수를 얻을 수 있다.
1234567891011121314151617181920212223...
이렇게 만들어진 새로운 수는 몇 자리 수일까? 이 수의 자릿수를 구하는 프로그램을 작성하시오.
첫째 줄에 N(1≤N≤100,000,000)이 주어진다.
첫째 줄에 새로운 수의 자릿수를 출력한다.
str.size()
를 이용하여 구하기str.size()
를 각 숫자마다 구해서 더하기get_length()
함수를 구현하여 직접 각 자리수 구해서 더하기str.size()가 시간이 오래 걸리는 함수인 것 같다...
#include <iostream>
using namespace std;
int get_length(int n) {
int len = 0;
while (n>0){
n /= 10;
len++;
}
return len;
}
int main(void) {
cin.tie(NULL);
ios_base::sync_with_stdio(false);
int n;
cin >> n;
long long answer = 0;
for (int i = 1; i <= n; i++){
answer += get_length(i);
}
cout << answer;
}