Number of Digit One(Medium)
2015-11-20 14:53
344 查看
1.算法说明:
如3141592,在m(digitDivide)=100时,即要求计算百位上“1”的个数
其中a为31415,b为92,31415中出现了3142次“1”,因为每10个数里面出现1次“1”。而实际上,31415是3141500,所以把31415中1的个数再乘以m。如3141400~3141499中,前缀为31414的数出现了100次,所以需要乘以m(此时是100)。
如3141592,在m(digitDivide)=100时,即要求计算百位上“1”的个数
其中a为31415,b为92,31415中出现了3142次“1”,因为每10个数里面出现1次“1”。而实际上,31415是3141500,所以把31415中1的个数再乘以m。如3141400~3141499中,前缀为31414的数出现了100次,所以需要乘以m(此时是100)。
class Solution { public: int countDigitOne(int n) { int ans=0; for(long long digitDivide=1;digitDivide<=n;digitDivide*=10) { int a=n/digitDivide; int b=n%digitDivide; ans+=(a+8)/10*digitDivide+(a%10==1)*(b+1); } return ans; }};
相关文章推荐
- mysql 字符串函数
- 【转】Jmeter安装 for windows
- 【转】Jmeter参数化
- Linux下端口被占用解决
- centos 配置php
- DRBD + Heratbeat + NFS 高可用文件共享存储
- 学习笔记(三)
- 详解Python编程中time模块的使用
- android安装apk错误Failure [INSTALL_FAILED_INVALID_URI]的解决办法
- Windows NT WinLogon Notify(转载+修改版)
- 横竖屏切换的生命周期
- PathEffectsDemo
- 使用CAShapeLayer与UIBezierPath画出想要的图形
- struts2中几个核心的组件ActionContext、ValueStack、OGNL表达式
- mac下 搭建 nginx mysql php运行环境
- linux命令——svn分支创建、合并
- TCP的状态(SYN FIN ACK PSH RST URG)
- 利用redis存储session,解决登录同步问题
- ios 键盘遮挡输入框解决方法
- mongodb 副本集学习