题目:数位之和的意思是某个整数每一位之和。比如123的数位之和就是6。
小信现在给你一个长度为 n 的数组 a ,然后操作 q 次,有两种操作:
1.l,r代表将下标范围在 [l,r] 内所有的 a[i] , 修改为 a[i] 的数位之和
2.x代表输出a[x]
首先定义一个set,先输入a数组,边输入边往set内插入是非个位数的下标(个位数不用计算)
然后,进入k次循环
if 操作1 then
定义指针it指第一个小于l的
//如果*it大于r直接不计算(都算过力(悲))或下标l在set中是最大的(都被erase掉力(喜))
while it指在r+1内 and it不指向超过set范围的地方
从set下标l到r不断计算每数各位之和 //注意set只是存放仍需计算的值的下标,算完后要存入a[*it]
如果算完是个位数,直接erase掉set中下标
否则继续it++
操作2就不用说了,计算各位和函数也自己写吧
最后,上代码
