小苯的数字变换
题号:NC299342
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}小苯在研究一种特殊的数字变换。对于一个正整数 x,定义一个数字的"根"为不断将其各位数字相加直到得到个位数。例如:
\hspace{15pt}\hspace{15pt}- 根 (38) = 3+8 = 11 → 1+1 = 2
\hspace{15pt}\hspace{15pt}- 根 (999) = 9+9+9 = 27 → 2+7 = 9

\hspace{15pt}现在给定一个数字串 x,请你求出:所有 x 的连续子区间代表的十进制数字(去掉前导 0 后)的 "根" 之和。

输入描述:

\hspace{15pt}每个测试文件均包含多组测试数据。第一行输入一个整数 T\ (1 \leq T \leq 100) 代表数据组数,每组测试数据描述如下:

\hspace{15pt}第一行包含一个整数 x\ (1 \leq x \leq 10^{1000000})

\hspace{15pt}除此之外,保证单个测试文件中所有 x 的长度之和不超过 2 \times 10^6。(保证 x 不含前导 0。)

输出描述:

\hspace{15pt}对于每组测试数据,输出一行一个整数表示所有连续子区间代表的十进制数字的 "根"之和。
示例1

输入

复制
4
123
101
10000
10234

输出

复制
20
6
5
58

说明

第一组数据:
- 1,2,3 的数字根都是自身,12 的数字根是 1+2=323 的数字根是 2+3=5123 的数字根是 1+2+3=6

因此输出:1+2+3+3+5+6=20