pku2282,pku3286(计数统计)

47 篇文章 0 订阅

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;

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值