输入一个整数 n
,求1~n这n个整数的十进制表示中1出现的次数。
例如,输入12,1~12这些整数中包含1 的数字有1、10、11和12,1一共出现了5次。
示例 1:
输入:n = 12输出:5
示例 2:
输入:n = 13输出:6
限制:
1 <= n < 2^31
参考K神思路 面试题43. 1~n 整数中 1 出现的次数
饰品店装修图片class Solution { public int countDigitOne(int n) { int res = 0; int digit = 1, high = n/10, cur = n%10, low = 0; // 当 high 和 cur 同时为 0 时,说明已经越英语手抄报三年级过最高位,因此跳出 while(high != 0 小学教学工作计划|| cur != 0){ if(cur==0){ res += high*digit; 白山旅游 }el if(cur==1){ res += high*digit+low+1; }el{ res += (high+1)*digit; } low += cur*digit; cur = high%10万圣节的由来和传说; high /= 10; digit *= 10; } return res; }}
本文地址:https://blog.csdn.net/zaker123/article/details/107303709
本文发布于:2023-04-08 19:54:27,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/b6695ff5f79df400b45a6ddbedeae31f.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:[LeetCode](面试题43)1~n整数中1出现的次数.doc
本文 PDF 下载地址:[LeetCode](面试题43)1~n整数中1出现的次数.pdf
留言与评论(共有 0 条评论) |