有一个由10000个公寓组成的建筑,公寓的编号从1到10000(包含1和10000)。 如果一个公寓的编号由相同的数字组成,则称这个公寓是无聊的。比如11,2,777,9999。 我们的角色是一个捣蛋鬼,以下面的顺序不停地拨打所有无聊公寓的对讲机,直到有人回应:
首先拨打所有由数字1组成的公寓,以递增的顺序(1,11,111,1111)。然后拨打所有由数字2组成的公寓,以递增的顺序(2,22,222,2222)。以此类推 无聊公寓x的住户回应之后,我们才会停止拨打。 我们想要知道我们总共按了多少个数字,因此你的任务是计算我们总共按了多少个数字。 比如,如果无聊公寓22回应了,那么我们就拨打过1,11,111,1111,2,22,因此我们总共按了1+2+3+4+1+2=13个数字。 你需要回答t个独立的测试用例。可知结果受两个因素影响,一个是x是由什么数字组成的,另一个是x有几个数字。比如x=22,那么在数字2之前有1,按完1的所有可能需要1+2+3+4=10次;x有两个数字,所以要再按1+2=3次,所以总共是10+3=13次。 总结:设x由a个b组成,那么结果就是(b-1)*10+a*(a+1)/2