编写一个方法,计算从 0 到 n (含 n) 中数字 2 出现的次数。 来源:力扣(LeetCode) 同题:剑指Offer – 面试题43. 1~n整数中1出现的次数(找规律+公式) 0 ms 5.9 MB
1. 题目
示例: 输入: 25 输出: 9 解释: (2, 12, 20, 21, 22, 23, 24, 25)(注意 22 应该算作两次) 提示: n <= 10^9
链接:https://leetcode-cn.com/problems/number-of-2s-in-range-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。2. 解题
按位遍历每个位,例如521
class Solution { public: int numberOf2sInRange(int n) { long i = 1, count = 0, high, cur, low; while(n/i)//遍历每个位 { high = n/(10*i);//高位 cur = (n/i)%10;//当前位 low = n-(n/i)*i;//低位 if(cur < 2) count += high*i; else if(cur == 2) count += high*i+low+1; else count += (high+1)*i; i *= 10; } return count; } };
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算