我是靠谱客的博主 坚定纸鹤,最近开发中收集的这篇文章主要介绍1.2 从0到n,共包含多少个2?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.2 Write a method to count the number of 2’s between 0 and n.
EXAMPLE
input: 35
output: 14 [list of 2’s: 2, 12, 20, 21, 22, 23, 24, 25, 26, 27,28, 29, 32]

从0枚举到n,统计2的个数,显然太麻烦了,而且不是数学方法。。

既然是要统计从0到n中,一共出现了多少2,那就可以考虑:个位一共多少2,十位一共多少2,百位一共多少2... 最后加起来就可以

比如35 [其实就是035]: (03+1)*1    +  (0+1)*10=14;

                                            个位的2        十位的2

括号里为什么要+1呢? 因为这位上本身的数>=2;如果该位上<2,就+0 。

再比如135 [0135]:  (013+1)*1  +  (01+1)*10 + (0+0)*100 = 34;

                                            个位的2     十位的2      百位的2( 1<2,所以+0)


所以可以得到算法(计算第i位包含的2个

最后

以上就是坚定纸鹤为你收集整理的1.2 从0到n,共包含多少个2?的全部内容,希望文章能够帮你解决1.2 从0到n,共包含多少个2?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部