이렇게 결과값은 res = res + (cnt * (n-sum))을 통해 구할 수 있음을 알았다.
그런데, 반복을 어느시점에 멈춰줘야 하는지를 아직 알지 못하였다.
반복을 멈춰야 하는 시점은, 256은 3자리 수이기 때문에 3자리 수의 총 개수인 999개를 넘어서면 안된다.
따라서 999를 구하는 방법은 (3자리 수의 d(900개)+sum(99개))일 것이다.
따라서 while문의 조건은 d+sum < n으로 한다.
//large
int main() {
int n, res = 0, d = 9, cnt = 1, sum = 0;
cin >> n;
while(d+sum < n){
res = res + (cnt * d);
sum = sum + d;
cnt++;
d*=10;
}
res = res + ((n-sum)*cnt);
cout << res;
return 0;
}