0부터 n까지의 자릿수 합

0부터 n까지의 모든 수를 십진수로 적었을 때 나타나는 각 자릿수의 합을 구한다. n은 10^16까지 커질 수 있다.

보통6수학구현동적 계획법아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

0부터 nn까지의 수를 모두 더한 값은 n(n+1)/2n(n+1)/2로 간단히 구한다. 즉 0+1+2++n=n(n+1)/20 + 1 + 2 + \cdots + n = n(n+1)/2이다.

이 문제는 조금 더 어렵다. 수열 [0,1,,n][0, 1, \ldots, n]에 나오는 모든 자릿수의 합은 얼마인가?

0부터 nn까지 세면서 등장하는 자릿수를 전부 더한 값을 구하는 프로그램을 작성하라.

n=15n = 15이면 수열 [0,1,2,,14,15][0, 1, 2, \ldots, 14, 15]에 나오는 자릿수를 모두 더한다. 그 합은 1+2+3+4+5+6+7+8+9+1+0+1+1+1+2+1+3+1+4+1+5=661 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 1 + 0 + 1 + 1 + 1 + 2 + 1 + 3 + 1 + 4 + 1 + 5 = 66이다.

입력

첫째 줄에 정수 nn이 주어진다. (1n10161 \le n \le 10^{16})

출력

첫째 줄에 수열 [0,1,,n1,n][0, 1, \ldots, n-1, n]에 나오는 자릿수의 합을 출력한다.