关注
楼主加油!链接:https://www.nowcoder.com/questionTerminal/bd7f978302044eee894445e244c7eee6?answerType=1&f=discussion 来源:牛客网 方法一:递归方法(参考力扣答案) 思路: f(n)为1-n范围内,这n个数中1出现的次数 首先将n分为两种情况:情况一:最高位为1(如1234);情况二:最高位不为1(如3234) 情况一:当最高位为1时(以1234为例): ①:将n分为两部分,最高位单独拿出来为1,定义为high;剩下的部分为234,定义为last; ②:获取到最高位的分位,为千分位,即定义pow=1000; ③将数据n定义两个范围: 1.1-999范围内,1的个数为f(pow-1); 2.1000-1234范围内: 1)首先只考虑千分位是1的个数:也就是1000、1001、1002...1234,即234+1,转换下为:last+1 2)其次考虑其他位数上的1的个数为:f(last)。 综上所述:情况一中1出现的次数为:f(pow-1)+last+1+f(last) 情况二:当最高为不为1时(以3234为例): ①:1-999范围内,1的个数依然为:f(pow-1); ②:1000-1999范围内: 1)只考虑千分位是1的个数为:1000、1001、1002...1999即1000个也就是pow; 2)其他位数上1的数量为:f(pow-1) ③:2000-2999范围内1的个数:f(pow-1),注意这里的千分位是2,所以不要考虑分两种情况 ④:3000-3234范围内1的个数:f(last)
1
相关推荐
牛客热帖
更多
正在热议
更多
# 2025年终总结 #
145472次浏览 2495人参与
# 秋招落幕,你是He or Be #
2882次浏览 72人参与
# 应届生进小公司有什么影响吗 #
108958次浏览 1115人参与
# 比亚迪工作体验 #
69880次浏览 254人参与
# 你面试体验感最差/最好的公司 #
2749次浏览 56人参与
# 工作中听到最受打击的一句话 #
2335次浏览 61人参与
# 大厂VS公务员你怎么选 #
70776次浏览 657人参与
# 重来一次,你会对开始求职的自己说 #
2736次浏览 69人参与
# 一人说一个提前实习的好处 #
3084次浏览 66人参与
# 团建是“福利”还是是 “渡劫” #
3871次浏览 108人参与
# 实习没事做是福还是祸? #
7937次浏览 135人参与
# 如何排解工作中的焦虑 #
243411次浏览 2237人参与
# 从顶到拉给所有面过的公司评分 #
144762次浏览 518人参与
# 今年你最想重开的一场面试是? #
1304次浏览 24人参与
# 你小心翼翼的闯过多大的祸? #
6683次浏览 107人参与
# 联影求职进展汇总 #
123774次浏览 781人参与
# OPPO求职进展汇总 #
755814次浏览 5390人参与
# 互联网公司爆料 #
158531次浏览 724人参与
# 产品实习,你更倾向大公司or小公司 #
189036次浏览 2052人参与
# 秋招结束之后的日子 #
113880次浏览 1038人参与
