本题的意图是数1的个数,而1在各位上与否与其他位是无关的,须知这一点才行,要不然理解他的解法会让你感到郁闷!
作者的思路就是先单独研究1位,剩下的位按照相同的方法去研究,这就是递归思想的体现。以万位为例,万位为1的数字肯定是从10000到19999这1万个数字,至于说这万位后面的4为中1的个数是多少留给递归式去解决吧。解决完万位再来解决千位。
在这个例子中作者分段的思想很值得借鉴,他这样分段使得各段的长度为10的幂次,这个对于计算来说非常方便。
本题的意图是数1的个数,而1在各位上与否与其他位是无关的,须知这一点才行,要不然理解他的解法会让你感到郁闷!
作者的思路就是先单独研究1位,剩下的位按照相同的方法去研究,这就是递归思想的体现。以万位为例,万位为1的数字肯定是从10000到19999这1万个数字,至于说这万位后面的4为中1的个数是多少留给递归式去解决吧。解决完万位再来解决千位。
在这个例子中作者分段的思想很值得借鉴,他这样分段使得各段的长度为10的幂次,这个对于计算来说非常方便。