`
睡着的兔子
  • 浏览: 34960 次
  • 性别: 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...

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

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

    信息学奥赛一本通-教程PPT课件(第五版)算法部分 第六章 贪心算法.pdf

    1. 问题分析:纪念品分组问题要求将n个纪念品分成若干组,每组最多两个,价格之和不超过给定上限,目的是使组数最少。 2. 解题思路:贪心策略可以是,优先将价格较高的纪念品分配到不同的组中,以避免超过价格上限。...

    主流自动化测试工具小结

    - **功能**: xUnit 系列框架是目前最流行的单元测试工具之一,适用于多种编程语言,如 Java (JUnit)、C++ (CppUnit)、Delphi (DUnit)、.NET (NUnit) 和 PHP (PHPUnit) 等。这些工具通常提供开源代码,便于开发者快速...

    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. **数据结构与算法** ...

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

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

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

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

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

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

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

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

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

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

Global site tag (gtag.js) - Google Analytics