2668: T2-每数一位
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:26
解决:5
题目描述
33 最近学习了数位和,他学会了用下面的代码计算 $x$ 的数位和 $num$:
- 他想可以先把一个数算出数位和,得到一个新造的数
- 然后把新数继续求数位和,以此类推
- 直到最终得到一个一位数,就以此为**一位数位和**
比如对于整数 $19970111$,可以算出数位和 $1+9+9+7+0+1+1+1=29$,继续算出数位和 $2+9=11$,最终就能得到 $19970111$ 的**一位数位和** $1+1=2$.
现在给你整数 $n$,请你求出 $1\sim n$ 之间的所有整数对应的**一位数位和**,然后算出这些**一位数位和**之和。
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 分):没有特殊限制。
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 分):没有特殊限制。