题目描述

求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。
 
 
思路:
1.暴力。
2.通过当前位的数值,计算当前位为1的的数有多少个,然后相加。
 
代码:
1.
 class Solution {
public:
int NumberOf1Between1AndN_Solution(int n)
{
int iCount=;
for(int i=;i<=n;i++)
{
iCount+=count1(i);
}
return iCount; } int count1(int n)
{ int iNum=;
while(n!=)
{
iNum+=(n%==)?:;
n/=;
} return iNum;
}
};

2:

 class Solution {
public:
int NumberOf1Between1AndN_Solution(int n)
{
int cout=;
int factor=;
int nownum=;
int highnum=;
int lownum=; while(n/factor)
{
lownum=n-(n/factor)*factor;
nownum=(n/factor)%;
highnum=n/(factor*); switch(nownum)
{
case :
cout+=highnum*factor;break;
case :
cout+=highnum*factor+lownum+;break;
default:
cout+=(highnum+)*factor;
break;
}
factor*=;
}
return cout;
}
};

最新文章

  1. 盒子 offsetLeft、offsetTop、offsetWidth、getBoundingClientRect等属性解释
  2. C++STL - 模板的其他特性
  3. JS根据登录的城市不同调用不同的内容
  4. Jquery 的事件方法
  5. 1.8---字符串是否是旋转而成(CC150)
  6. Windows Phone开发工具初体验【转载】
  7. Java并发——使用Condition线程间通信
  8. 医院设置 codevs 2577
  9. java项目获取路径的几种方式
  10. [剖析Javascript原理]1.原生数据类型
  11. [Tool] Git 使用 与 Git Flow
  12. 一篇文章搞定SpringMVC参数绑定
  13. luoguP4705 玩游戏
  14. LVS详细介绍以及遇到的坑
  15. js学习——函数
  16. Open Nginx gzip
  17. phpcms 加载微信类库,生成签名
  18. 外网访问局域网ip的方法
  19. Centos6.5网络配置
  20. elasticsearch5.0集群大数据量迁移方法及注意事项

热门文章

  1. 创建 sequence
  2. 自然语言16.1_Python自然语言处理学习笔记之信息提取步骤&amp;分块(chunking)
  3. 自然语言14_Stemming words with NLTK
  4. UDP 网络通信 C#
  5. jQuery 鼠标拖拽移动窗口
  6. OC-封装
  7. python快排算法
  8. Java多线程编程核心技术---单例模式与多线程
  9. 淘宝首页源码藏美女彩蛋(上)(UED新作2013egg)
  10. 从一个弱引用导致的奔溃 谈 weak assign strong的应用场景【iOS开发教程】