题目要求: 给定 一个十进制正整数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有“1”的个数.    例如:N = 2,写下1,2.这样只出现了1个“1”.          N = 12,我们会写下1,2,3,4,5,6,7,8,9,10,11,12.这样,1的个数是5. 参考资料:编程之美2.4 1的数目 题目分析: 方法1:遍历从1~N的所有数,每个数对10取余,如果余数为1,则有一个1. 方法2:只分析N,不用逐个遍历.怎么分析呢?把N按个位.十位.百位...等来估算从1~N…
30.在从 1 到 n 的正数中 1 出现的次数(数组)题目:输入一个整数 n,求从 1 到 n 这 n 个整数的十进制表示中 1 出现的次数.例如输入 12,从 1 到 12 这些整数中包含 1 的数字有 1, 10, 1 1 和 12, 1 一共出现了 5 次. 思路:如1121 判断 千位 1出现了多少次:10000 有 0 个 有0个完整的 1000次千位 1, 千位数为1,说明本次千位还没有走完 后面的数字为 121 说明本次千位1走了 122个判断 百位 1出现了多少次:1000 有…
[题目] 输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数.例如输入12,从1到12这些整数中包含1 的数字有1,10,11和12,1一共出现了5次. [分析] 这是一道广为流传的google面试题. 普通n*lg(n)的解法. [解法1]  C++ Code  123456789101112131415161718192021222324252627282930313233343536   /////////////////////////////////////////////…
题目: 输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数.例如输入12,从1到12这些整数中包含1 的数字有1,10,11和12,1一共出现了5次. 找工作,准备看写题目,题目说是Google面试题,遂很认真地自己做了下. 找规律: 其实可以从中找出数列的规律.求从1到n数字中的1共有多少个,会想到按照数字的位数来观察观察,比如1位数字里(从1到9)共有1个,记W[1]=1:2位数字里(01到99)共有W[2]个,3位数字(001到999)共有W[3]个,定义如下数组: }; in…
问题描写叙述: 输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数.比如输入12,从1到12这些整数中包括1 的数字有1.10.11和12.1一共出现了5次. 这是一道广为流传的google面试题. 算法: 第一种思路:对从1到n的每一个数进行统计,统计的结果相加.算法复杂度为O(n) 另外一种思路:举例说明. 令n=321.则: 它的个位上出现1的形式为XY1,次数和为33(由于十位百位上可能出现的组合为0-32) 它的十位上出现1的次数和较为复杂,形式为X1Y,X的取值范围为0-…
#include <iostream> using namespace std; int cal1From0ToN(int n) { int pow1 = 1; int pow2 = 10; int count = 0; while (n / pow1) { switch (n % pow2 / pow1) { case 0: count += n / pow2 * pow1; break; case 1: count += n / pow2 * pow1; count += n % pow1…
题目要求: 输入一个正数n,输出所有和为n连续正数序列(至少两个). 例如输入15,由于1+2+3+4+5 = 4+5+6 = 7+8 = 15.所以输出3个连续序列1~5,4~6,7~8. 参考资料:剑指offer第41题. 题目分析: 由题意可知:从1~n中找连续的整数序列. 可以用两个变量small和big表示一个区间small~big,再用一个变量sum表示这个区间的数的和如果sum>n,则small向后移,如果sum<n则big向后移,如果sum=n则输出该区间small~big.…
题目要求: 输入一个链表,输出该链表中倒数第k个结点.链表的倒数第0个结点为链表的尾指针. 参考资料:剑指offer第15题 题目分析: 1.两个指针,第一个先走k步,然后两个指针同时走,直到第一个走到尾指针,此时第二个指针即为所求: 2.令函数原型为:ListNode *findKthToTail(ListNode *head,unsigned int k); 特殊情况: i). head为空指针: ii). head为头结点的链表的结点总数小于k: iii).k=0. 3.注意此处为倒数第0…
题目地址:http://ac.jobdu.com/problem.php?pid=1373 题目描述: 亲们!!我们的外国友人YZ这几天总是睡不好,初中奥数里有一个题目一直困扰着他,特此他向JOBDU发来求助信,希望亲们能帮帮他.问题是:求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此共出现6次,但是对于后面问题他就没辙了.ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数…
各位程序猿:         <剑指Offer>一书源自该书作者何海涛坚持更新与编写的博客(http://zhedahht.blog.163.com/),该博客收集整理了大量如微软.Google等知名IT企业的经典面试题.<剑指Offer>一书在此基础上选取了50个典型的程序员面试题,从基础知识.代码质量.解题思路.优化效率和综合能力五个方面系统整理了影响面试的5个要点,难度适中,讲解清晰,非常适合程序猿用于准备求职面试. 目前国内外越来越多公司将在线机试的方式引入求职招聘中,或者…