#P102. 一位数

一位数

题目描述

刚刚学了数位分离求和的小A,自信的秀出了他计算数位和的代码:

sum = 0;
while (x > 0)
{
    sum += x % 10;
    x /= 10;
}

小B觉着这实在是太简单了,于是想考考小A,让他接着继续算下去,直到这个数为一位数为止,具体而言:

  • 先把一个数的数位和求出,得到一个新的数;
  • 然后把新的数继续求数位和,以此类推;
  • 直到最终得到一位数。

比如整数 2011974520119745,可以算出数位和 2+0+1+1+9+7+4+5=292+0+1+1+9+7+4+5=29,继续算出数位和 2+9=112+9=11,最终就能得到 2011974520119745一位数1+1=21+1=2.

现给出一个整数 nn,请你求出 1n1\sim n 之间的所有整数对应的一位数,然后算出这些一位数的和。

输入格式

一行一个整数 nn

输出格式

一行一个整数,表示 nn一位数之和。

6
21
17
81
19970111
99850548

数据规模与约定

对于 100%100\% 的数据,1n10121 \le n \le 10^{12}

  • 子任务 1(30 分):1n91\le n\le 9
  • 子任务 2(30 分):1n1061\le n\le 10^6
  • 子任务 3(40 分):没有特殊限制。