1~9까지           9*1 = 9
10~99까지       90*2 = 180
100~999까지  900*3 = 2700
n자리의 숫자를 누르기 위해서는 ((9 * 10^(n-1)) * n 이 됩니다.
주 : 10^(n-1)은 10의 n-1제곱입니다

이겠죠.

X가 주어지면 n자리를 대입하기 위한 수를 차례로 빼나가서 0 이하가 되기 전까지 빼갑니다.
즉 n을 1씩 늘려가면서 위의 공식을 대입하여 차례대로 빼갑니다.

그리고 0 이하가 되기 전의 수 X₁을 n으로 나눈 나머지 값이 0인지 먼처 알아보고, 0이 아니라면 에러처리를 합니다.(수를 잘못 입력하였다는 뜻 이므로)
0이 나오면 X₁을 n으로 나눈 값 M으로 계산하여서

(10^(n-1)-1) + M을 합니다.
그것이 답입니다.

즉, n = 4에서 0 이하가 되기 직전의 수가 나오고, 그 직전의 수를 5로 나누어서 몫이 1875가 나온다면
10000 + 1875 = 11875가 되는 것입니다.

여기까지 하면 C++, C로 짜는데는 무리는 없을꺼라고 봅니다.