2668: T2-每数一位

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:26 解决:5

题目描述

33 最近学习了数位和,他学会了用下面的代码计算 $x$ 的数位和 $num$:
num = 0;
while (x > 0)
{
    num += x % 10;
    x /= 10;
}
33 觉得只算数位和没有意思,想到一个算出**一位数位和**的方法:

- 他想可以先把一个数算出数位和,得到一个新造的数
- 然后把新数继续求数位和,以此类推
- 直到最终得到一个一位数,就以此为**一位数位和**

比如对于整数 $19970111$,可以算出数位和 $1+9+9+7+0+1+1+1=29$,继续算出数位和 $2+9=11$,最终就能得到 $19970111$ 的**一位数位和** $1+1=2$.

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

输入

一行一个整数 $n$。  

输出

一行一个整数,表示 $n$ 个**一位数位和**之和。

样例输入 复制

5

样例输出 复制

15

提示

```input2
15
```

```output2
66
```

```input3
19970111
```

```output3
99850548
```

## 数据规模与约定

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

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

来源/分类