描述
有一个“数字转转转”游戏,规则如下:
给定一个正整数 $x$,进行一次“数字转转转”操作就是将其每一位数字相加,得到一个新的数。例如:`375` 经过一次操作变为 `3+7+5=15`,`15` 经过一次操作变为 `1+5=6`。
现在有 T 组测试数据,每组数据给出操作次数 type 和若干个正整数,请计算每个数字经过 type 次“数字转转转”操作后的结果。
注意:由于数字的特性,一个数经过最多两次操作后就会变成一位数(0~9),之后再进行操作结果不变。因此,对于任意 type:
- 如果 type=0,结果为原数;
- 如果 type=1,只需进行一次数位和计算;
- 如果 type≥2,最多只需进行两次数位和计算,因为两次后必为一位数,后续操作不会改变结果。
输入
第一行一个整数 $T (1 ≤ T ≤ 10³)$,表示测试组数。
对于每组测试数据:
1. 第一行一个整数 $ type (0 ≤ type ≤ 10⁹)$,表示操作次数;
2. 第二行一个整数 $m (1 ≤ m ≤ 10⁵)$,表示数字个数;
3. 第三行 $m $个正整数$ x (1 ≤ x ≤ 10⁹)$,表示待处理的数字。
保证所有测试数据的 $m $之和不超过 $10⁶$。
输出
对于每组测试数据,输出一行,包含 $m$ 个整数,表示每个数字经过 type 次操作后的结果,数字之间用一个空格隔开。
样例
- 复制
- 复制
- 复制
- 复制
提示
样例 1 解释
第一组:type=1,每个数进行一次操作。
- `123 → 1+2+3=6`
- `456 → 4+5+6=15`
- `789 → 7+8+9=24`
- `999 → 9+9+9=27`
第二组:type=2,每个数进行两次操作。
- `10 → 1+0=1 → 1`(第二次操作时,1 已经是一位数,所以结果不变)
- `100 → 1+0+0=1 → 1`
- `1000 → 1+0+0+0=1 → 1`
第三组:type=3,每个数进行三次操作,但两次后已稳定。
- `9876 → 9+8+7+6=30 → 3+0=3 → 3`(第三次操作时,3 已是一位数,结果不变)
- `54321 → 5+4+3+2+1=15 → 1+5=6 → 6`

关注我们