这个问题关键在于好好分析一些样例如:
给定123这个数,你说这个从1到123所有数字中,1出现的次数是多少?
首先我们要分析个位上1出现的次数,我们看看什么情况下个位出现1:
1,11,21,31,41,-----91,101,111,121,
因为从1-123中其实就是有多少个十就行了。
你看下从1到100个位出现1的情况:
1,11,21,31,41,51,------91。有多少个呢?
就是10*1=10个 
其实就是从01,11,21,31,41,51-----91当然是10了。
就是1-100中个位有10个1.
然后再从101-123呢个位有多少个1?
就是101,111,121,有(2+1)*1=3个。
其实我们可以这样了。
那么再分析十位上出现1的情况:
1-123.
则有10-19    110-119
有多少个呢?
首先看1-100有
10-19 有10个
然后110-119 有10个
则有(1+1)*10=20个
为什么是1+1?
其实和123中10位数字有关,你想如果是103呢十位有多少个1?
就是1*10=10个
113呢?
就是1*10+3=13.
123呢?
2>1呢
(1+1)*10=20了。
于是就有规律了。 

源代码:
  1. #ifndef NUMBER_OFONEINDATA_H
  2. #define NUMBER_OFONEINDATA_H
  3. #include<iostream>
  4. unsigned int numberOfOneInData(unsigned int v_data){
  5. if(v_data<=0){
  6. return 0;
  7. }
  8. unsigned int oneCount=0;
  9. unsigned int iFactor=1;
  10. unsigned int icurrentUnitNum=0;
  11. unsigned int iLowerNum=0;
  12. unsigned int iHigherNum=0;
  13. while(v_data/iFactor!=0){
  14. iLowerNum=v_data-(v_data/iFactor)*iFactor;
  15. icurrentUnitNum=(v_data/iFactor)%10;
  16. iHigherNum=v_data/(iFactor*10);
  17. switch (icurrentUnitNum)
  18. {
  19. case 0:
  20. oneCount+=iHigherNum*iFactor;
  21. break;
  22. case 1:
  23. oneCount+=iHigherNum*iFactor+iLowerNum+1;
  24. break;
  25. default:
  26. oneCount+=(iHigherNum+1)*iFactor;
  27. break;
  28. }
  29. iFactor=iFactor*10;
  30. }
  31. return oneCount;
  32. }
  33. #endif



1到N中1出现的次数的更多相关文章

  1. 整数中1出现的次数(从1到n整数中1出现的次数)

    题目:求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此共出现6次,但是对于后面问题他就没辙了.AC ...

  2. 剑指Offer:面试题32——从1到n整数中1出现的次数(java实现)

    问题描述: 输入一个整数n,求1到n这n个整数的十进制表示中1出现的次数.例如输入12,从1到12这些整数中包含1的数字有1,10,11,12,1一共出现了5次. 思路:(不考虑时间效率的解法,肯定不 ...

  3. 题目1373:整数中1出现的次数(从1到n整数中1出现的次数)

    题目1373:整数中1出现的次数(从1到n整数中1出现的次数) 题目描述: 亲们!!我们的外国友人YZ这几天总是睡不好,初中奥数里有一个题目一直困扰着他,特此他向JOBDU发来求助信,希望亲们能帮帮他 ...

  4. 剑指Offer 整数中1出现的次数(从1到n整数中1出现的次数)

    题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此共出现6次,但是对于后面问题他就没辙了. ...

  5. 【编程题目】在从 1 到 n 的正数中 1 出现的次数

    30.在从 1 到 n 的正数中 1 出现的次数(数组)题目:输入一个整数 n,求从 1 到 n 这 n 个整数的十进制表示中 1 出现的次数.例如输入 12,从 1 到 12 这些整数中包含 1 的 ...

  6. 25.在从1到n的正数中1出现的次数[NumberOf1Between1_N]

    [题目] 输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数.例如输入12,从1到12这些整数中包含1 的数字有1,10,11和12,1一共出现了5次. [分析] 这是一道广为流传的goo ...

  7. 剑指offer系列57---整数中1出现的次数

    [题目]求出1~n的整数中1出现的次数.(10进制) package com.exe11.offer; /** * [题目]求出1~n的整数中1出现的次数. * @author WGS * */ pu ...

  8. (剑指Offer)面试题32:从1到n整数中1出现的次数

    题目: 输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数.例如输入12,从1到12这些整数中包含1的数字有1,10,11和12,一共出现了5次. 思路: 1.累加法 累加1到n中每个整数 ...

  9. Google面试题:计算从1到n的正数中1出现的次数

    题目: 输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数.例如输入12,从1到12这些整数中包含1 的数字有1,10,11和12,1一共出现了5次. 找工作,准备看写题目,题目说是Goo ...

  10. 1049. Counting Ones/整数中1出现的次数(从1到n整数中1出现的次数)

    The task is simple: given any positive integer N, you are supposed to count the total number of 1's ...

随机推荐

  1. Java中的的XML文件读写

    XML简介 要理解XML,HTML等格式,先来理解文档对象模型DOM 根据 DOM,HTML 文档中的每个成分都是一个节点,这些节点组成了一棵树.DOM 是这样规定的:整个文档是一个文档节点每个 HT ...

  2. Android开发之获取本地视频和获取自拍视频

    1.获取本地所有视频 public void getLoadMedia() { Cursor cursor = UILApplication.instance.getApplicationContex ...

  3. Mysql-学习笔记(==》权限管理 十 三)

    -- 用户与权限管理-- 查看当前服务器上的所有账号密码主机SELECT USER,PASSWORD,HOST FROM mysql.user; -- 设置账号密码SET PASSWORD=PASSW ...

  4. ContentProvider官方教程(10)<provider>元素及属性介绍

    The <provider> Element Like Activity and Service components, a subclass of ContentProvider mus ...

  5. Jetty和Tomcat的选择:按场景而定

    Jetty和Tomcat的选择:按场景而定 Jetty和Tomcat为目前全球范围内最著名的两款开源的webserver/servlet容器.由于它们的实现都遵循Java Servlet规范,一个Ja ...

  6. Utility

    #region Tools public static string ForMatDateTime(DateTime dt, string formatStr) { return string.For ...

  7. Datatable分页

    using System; using System.Collections.Generic; using System.Web; using System.Data; /// <summary ...

  8. JS如何将CST格式的日期转换为制定格式String

    <html> <body> <script type="text/javascript"> var d = new Date() dateFor ...

  9. Servlet&jsp基础:第三部分

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  10. 第五章 consul key/value

    1.key/value作用 动态修改配置文件 支持服务协同 建立leader选举 提供服务发现 集成健康检查 2.使用 2.1.查看全部key/value 说明: 使用?recurse参数来指定查看多 ...