#include<stdio.h>
#include<cmath>
int main(){
int a;
scanf("%d", &a);
int sum = 0; // 자릿수에서 사용하는 숫자의 개수
int c = 1; // 자릿수
int d = 9; // 1-9, 10-99, 100-999
int result = 0; // 총 합
while(sum + d < a){
result += (c*d);
sum = sum + d;
c++;
d *= 10;
}
result += (a - sum) * c;
printf("%d", result);
return 0;
}
1. 1의 자리수에서 총 사용하는 숫자의 개수는 1~9 까지 총 9개이다. (c = 1, d = 9, c * d = 9) 이후 c++; (자리수 증가)
2. 10의 자리수에서 총 사용하는 숫자의 개수는 10~99까지 총 90개 * 숫자 2자리 = 180개이다. (c = 2, d = 90, c * d = 180)
3. 만약 입력값 a가 256일 때, while 문은 99 + 900(d * 10 * 10) < 256 일 때 멈추므로 이후 계산은 256 - 99(1부터 99까지) = 157 * 3(c, 자리수) = 471을 result에 더해준다.
첫 점수 : 20점