调试中...
调试中...
题目描述
题目描述
题解
题解
提交记录
提交记录
代码
代码
测试用例
测试用例
测试结果
测试结果
困难
相关标签
相关企业
提示

编写一个方法,计算从 0 到 n (含 n) 中数字 2 出现的次数。

示例:

输入:25
输出:9
解释:(2, 12, 20, 21, 22, 23, 24, 25)(注意 22 应该算作两次)

提示:

  • n <= 10^9
通过次数
13.7K
提交次数
27.2K
通过率
50.5%


相关企业

提示 1
从蛮力解法开始。

提示 2
不要计算每一个数中有多少个2,要一位数一位数地想,也就是说,首先计算(对于每个数字)第 1 位中有多少个 2,然后计算(对于每个数字)第 2 位中有多少个 2,再计算(对于每个数字)第 3 位中有多少个 2,以此类推。

提示 3
是否有一种更快的方法来计算某一特定位在一个数值范围内有多少个 2?注意,任何位的大约 1/10 应该是 2,但这只是大概比例。如何将其表述得更准确些?

评论 (0)

《程序员面试金典(第 6 版)》独家授权
本书是原谷歌资深面试官的经验之作,帮助了许多想要加入脸书、苹果、谷歌等 IT 名企的求职者拿到 Dream offer。本专题的 100+ 编程面试题是在原书基础上精心挑选出来的,帮助你轻松应战 IT 名企技术面试。
© 2025 领扣网络(上海)有限公司
0 人在线
行 1,列 1
运行和提交代码需要登录
n =
2
Source