`
睡着的兔子
  • 浏览: 34481 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

编程之美---1的数目

阅读更多

看了java 每日一题这个系列,看到其中的第二题

1到11有4个“1”,1中一个“1”,10中一个“1”,11中两个“1”,1000中,有多少个“1” 

看了这个题,想起了编程之美里第一章,题目的要求挺类似的。

它的算法思路是:通过对数字进行有规律的总结,发现从1到N,中出现的所有的1的总数。可以从N这个数总结出来的。那么出现1的总数应该等于,个位上出现1的次数+十位上出现1的次数+百位上出现1的次数+。。。。。。

所以对于一个数abcde,取百位上的c来计算,假若c是"1",那么百位上1的个数是由他的高位和低位来决定的。等于ab*100+cde+1;

假若c是"0",那么百位上1的个数是ab*100;

假如c是大于1,那么 百位上1的个数是(ab+1)*100;

 

根据这个思路可以得出下面的代码:

 写道
public static int compute(int num) {
int result = 0;
int current = 0;
int high = 0;
int low = 0;
int fator = 1;
while (num / fator != 0) {
low = num - (num / fator) * fator; // 计算当前位之后的数值
current = (num / fator) % 10; // 计算当前位的数值
high = num / (fator * 10); // 计算当前位之前的数值

switch (current) {
case 0:
result += high * fator; //该位是0的情况
break;
case 1:
result += high * fator + 1 + low;//该位是1的情况
break;
default:
result += (high + 1) * fator;//该位大于1的情况
break;
}

fator = fator * 10;
}

return result;

}
   这是另外的一种思路,通过对数字的分析而得出的结果。
分享到:
评论

相关推荐

    编程之美1的数目.pdf

    编程之美1的数目.pdf

    中文版Excel.2007高级VBA编程宝典.part1

    出版日期:2009-2-1 ISBN:9787302194675 字数:1294000 页码:872 编辑推荐 -------------------------------------------------------------------------------- “电子表格先生”潜心力作,世界级Excel畅销书。 ...

    C 语言编程常见问题解答.chm

    【作者】[美]Paul S.R. Chisholm 译:张芳妮 吕 波 【出版社】清华大学出版社 C语言编程常见问题解答(目录) 第l章 C语言 1. 1 什么是局部程序块(local block)? 1. 2 可以把变量保存在局部程序块中吗? 1. 3...

    算法分析实验之伪造硬币问题-找零钱问题

    算法分析实验之伪造硬币问题-找零钱问题 本实验旨在掌握分治法和贪心算法的概念和基本思想,并通过具体的问题学习如何用相应策略进行求解的方法。实验内容包括伪造硬币问题和找零钱问题两个部分。 伪造硬币问题 ...

    c#学习笔记.txt

    catch (exception-declaration-1) catch-block-1 catch (exception-declaration-2) catch-block-2 ... try try-block catch catch-block (4) fixed 防止变量被垃圾回收器重定位。 (5) lock lock 关键字将某个语句...

    c标准库1

    C标准库是C语言编程的基础,它提供了一系列预定义的函数和数据类型,方便开发者进行各种操作。在这个概述中,我们将重点关注两个关键的头文件:`ctype.h` 和 `stdio.h`。 首先,`ctype.h` 头文件包含了一系列用于...

    程序员面试前的模拟测验掌握小知识

    3. **算法优化** - "编程之美 让CPU占用率曲线听你指挥.pdf" 暗示了优化代码和算法的重要性。面试中,展示你对算法的理解,如排序、查找、动态规划等,并能解释如何通过优化降低CPU占用率。 4. **数据结构与算法** ...

    顶级面试题,涉及算法、逻辑、设计

    通过分析程序的循环结构,我们可以推断出程序共运行 N*(N-1)/2 次。 4. 查找两个字符串最大公共子串问题: String A=”1234567890”;String B=“456789qwert” 这个问题考察的是算法和字符串处理。通过使用动态...

    微软亚洲研究院经典面试题

    2. **编程之美 让CPU占用率曲线听你指挥.pdf**:此题目可能关注如何优化程序性能,降低CPU占用率。这需要了解CPU调度、并发编程和算法效率。优化技巧可能包括代码重构、算法改进、线程池的使用、异步处理等。 3. **...

    优秀程序员必须知道的20个位运算技巧

    无论是嵌入式编程还是优化系统的核心代码,适当的运用位运算总是一种迷人的手段,或者当您求职的时候,在代码中写入适当的位运算也会让您的程序增加一丝亮点,最初当我读《编程之美》求“1的数目”时,我才开始觉得...

    2022年初级软件测试工程师面试题笔试题集.doc

    1. 执行SQL语句:SELECT COUNT(DISTINCT 学号) FROM 成绩 WHERE 分数>60 查询成果中包括的元组数目是多少? 答案:3 2. SQL语言中,删除一种表的命令是? 答案:DROP 3. 请写出查询student_info_table表中姓名为...

    C语言编程要点

    12.3. 怎样编写参数数目可变的函数? 171 12.4. 独立(free—standing)环境和宿主(hosted)环境之间有什么区别? 173 12.5. 对字符串进行操作的标准库函数有哪些? 173 12.6. 对内存进行操作的标准库函数有哪些? 176 12.7...

    2013年计算机二级考试:VB冲刺试题及答案(一).doc

    该程序计算从2到100的偶数之和,因为FOR循环步长为2,所以只累加偶数,结果是B.1到100中偶数的和。 14. **Visual FoxPro - 索引操作** 索引文件会随着表文件的关闭而关闭,因此选项D. 索引文件不随表文件的关闭而...

    微软近几年的面试题目汇总

    "编程之美"中的问题可能涵盖了排序、搜索、图论等多种算法。例如,“寻找最大的K个数”可能涉及到快速选择或堆排序;“求二叉树中节点的最大距离”可能需要用到深度优先搜索或广度优先搜索;“1的数目”和“求二进制...

    技术面试技术面试技术面试技术面试技术面试

    1. **编程之美 让CPU占用率曲线听你指挥.pdf**: 这可能涉及到系统优化和性能监控。面试中可能会问到如何通过编程手段来控制或优化CPU使用率,例如通过多线程、异步处理、任务调度等方法。同时,面试者需要了解操作...

    计算机图形学画花瓣曲线

    1. **半径大小**:决定了花瓣曲线的宽度,即花瓣边缘到中心点的距离。通过改变这个值,我们可以让花瓣变得更宽或更窄,从而影响整个花朵的外观。 2. **旋转角度**:是花瓣在绕中心点旋转时的角度,决定了花瓣排列的...

    Arm Cortex R52 增强时间关键型汽车设计.pdf

    Arm Cortex R52 增强时间关键型汽车设计 Arm Cortex R52 是 Arm 公司最新发布的...如果想领先同事一步的话(比如在薪水方面),工程师们应该学习使用新的编程工具(例如代码生成工具)和创建跨领域工程团队的工具。

    Shell脚本专家指南

    第1部分 基本脚本编程技术 第1章 shell脚本的错误检测 1.1 shell跟踪选项 1.2 简单输出语句 1.3 根据调试层次控制输出 1.4 用函数简化错误检查 1.5 手动单步执行 第2章 标准函数库 2.1 库文件 2.2 一些有用的函数 ...

Global site tag (gtag.js) - Google Analytics