文章内就不再贴题目了,有需要大家可以直接去OJ上查看—统计字数问题。
1. 算法描述
本题目采用了排列组合的思想。分别计算每个数字在每一位上出现的次数,累加之后,即为最后的结果。
需要特别注意的是,我们直接用排列组合直接计算,但是并没有把0 和其他数字分开来算,
所以这样计算出来的结果就是把前导0 也一起算进去了,所以输出结果前应该减掉所有前导0。
文字说明不够直观,下面我举个栗子来帮助大家理解这个算法
栗子
page:25634
位次 | 该位上数字 | 0-9 共同出现的次数 | 小于该位上数字的数额外加的值 | 等于该位上的数字的数额外加的值 |
个位 | 4 | 2563 * 1 | +1 | +1 |
十位 | 3 | 256 * 10 | +10 | +4 |
百位 | 6 | 25 * 100 | +100 | +34 |
千位 | 5 | 2 * 1000 | +1000 | +634 |
万位 | 2 | 0 * 10000 | &# |