整数中1出现的次数
来源:互联网 发布:淘宝到了1个钻 编辑:程序博客网 时间:2024/06/06 14:23
题目
求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。
思路及代码参考自链接
思路
观察 1~n 十进制数每一位1出现的次数
每一位大于1
543
个位1:54*1+1 (00~53)
十位1 : 5*10+10(0~4)
百位1:0*100+100某些位等于1
513
个位1:51*1+1
十位1 : 5*10+3+1
百位1:0*100+100某些位等于0
503
个位1:51*1+1
十位1 : 5*10(0~4)
百位1:0*100+100
代码
public class Solution { public int NumberOf1Between1AndN_Solution(int n) { int count = 0; int base = 1; //1,10,100 int round = n; //543,54,5,0 while(round>0){ int weight = round%10; //当前位大小 round = round/10; count += round*base; if(weight==1) count += (n%base)+1; else if(weight>1) count += base; base *= 10; } return count; }}
阅读全文
0 0
- :整数中1出现的次数
- 整数中1出现的次数
- 整数中1出现的次数
- 整数中1出现的次数
- 整数中1出现的次数
- 整数中1出现的次数
- 整数中1出现的次数
- 整数中1出现的次数
- 整数中1出现的次数
- 整数中1出现的次数
- 整数中1出现的次数
- 整数中1出现的次数
- 整数中1出现的次数
- 整数中1出现的次数
- 整数中1出现的次数
- 整数中1出现的次数
- 整数中1出现的次数
- 整数中1出现的次数
- SO_SNDTIMEO和SO_RCVTIMEO
- DB2、Oracle命令行导入/导出数据
- Tomcat源码解析(9)
- 报错com.neenbedankt.android-apt not found如何解决
- 简单自定义选择按钮(switchDemo)
- 整数中1出现的次数
- NavigationView
- 升级安装APK兼容Android7.0,解决FileUriExposedException
- 矩陣置换
- 下载安装apk(最终)
- 关于Java中try finally return语句的执行顺序分析
- 【多媒体编解码】Android 视频解析MediaExtractor
- Eclipse+maven配置SSM(Spring+SpringMVC+mybatis)
- HDU 6124 Euler theorem(思维)