码迷,mamicode.com
首页 > 其他好文 > 详细

在从1到n的正数中1出现的次数

时间:2014-07-22 22:50:57      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:style   color   strong   问题   c   line   

网上很多帖子写这个问题,看了下方法基本上是以下两种:爆破、按位统计,但是按位统计都写了很长的统计过程,其实就是一个动态规划的过程

f(n) = f(n/10) * 10 + n/10 + 1  当n%10 != 0 时,否则为f(n) = f(n/10) * 10 + n/10

下面解释下第一种情况(后面的是特例,也很好理解)

  • 公式中红色部分:固定个位数1,1-9中只有1个1;大于9的数中固定个位数为1,则起始数为11,结束值为X1,这里X为n/10,共n/10个数
  • 公式中蓝色部分:对于子问题f(n/10)中每个可以出现的1,都可以为f(n)贡献10个1,这是因为个位数取值范围为0-9

在从1到n的正数中1出现的次数,布布扣,bubuko.com

在从1到n的正数中1出现的次数

标签:style   color   strong   问题   c   line   

原文地址:http://www.cnblogs.com/D3Hunter/p/3855595.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!