首先,按最简单的方式,一个个数的计算位数,1 12 123 1234 12345,但是这样太慢了,会超时.
我们可以发现规律,1 12 123 1234 12345,我们不把它看作15个数字,而是看作5组数字,每组数字的长度分别增加1,这样,我们可以计算出,前9组数字的长度为
(1+9)*9/2=45
第10组数字不同了,多了一个10,也就是两位数,从第10-99组开始,每次每组长度递增2,100组开始,递增3,这样我们可以发现规律了,不用一个个数字去递增查找,而是一组一组数字的去查找,当查找到在某一组数字中,再一个个数字找,再一个个位的找.
这个规律用起来还是麻烦点,大家有空多想想 |