http://162.105.81.212/JudgeOnline/problem?id=3286
http://162.105.81.212/JudgeOnline/problem?id=2282
题意:给定一个区间(a,b),分别统计出0~9这几个数出现的次数。(pku2282)
分析:考虑由0,1,2,…,9组成的所有n位数。从n个0到n个9共有n位数,在这n位数中,0~9每个数字使用次数相同;
满足如下递归式,由此可知,可从低位向高位进行统计,再减去多余的0的个数即可。
定义数组ans[10]存放0到9这10个数出现的次数,个位为第0位,第j位的数字为r,采用while循环从低位向高位统计:
1)统计从个位算起前j位0~9个数;
2)如果j+1位为0,去掉第j+1位补0个数;
3)统计第j+1位出现1~(r-1)个数;
4)统计第j+1位出现r个数。
先求出0~a-1区间的0~9分别出现的次数,再求0~b区间的0~9分别出现的次数,最后用b区间的减去a区间的就行了。
pku3286这题是求一个区间中0出现次数,我用了上面的代码给了下,但是不知道为什么一直wa,答案和牛人的数据答案一样啊~
哪个经过的牛人指点下~3Q;