看了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
出版日期:2009-2-1 ISBN:9787302194675 字数:1294000 页码:872 编辑推荐 -------------------------------------------------------------------------------- “电子表格先生”潜心力作,世界级Excel畅销书。 ...
【作者】[美]Paul S.R. Chisholm 译:张芳妮 吕 波 【出版社】清华大学出版社 C语言编程常见问题解答(目录) 第l章 C语言 1. 1 什么是局部程序块(local block)? 1. 2 可以把变量保存在局部程序块中吗? 1. 3...
算法分析实验之伪造硬币问题-找零钱问题 本实验旨在掌握分治法和贪心算法的概念和基本思想,并通过具体的问题学习如何用相应策略进行求解的方法。实验内容包括伪造硬币问题和找零钱问题两个部分。 伪造硬币问题 ...
1. 问题分析:纪念品分组问题要求将n个纪念品分成若干组,每组最多两个,价格之和不超过给定上限,目的是使组数最少。 2. 解题思路:贪心策略可以是,优先将价格较高的纪念品分配到不同的组中,以避免超过价格上限。...
- **功能**: xUnit 系列框架是目前最流行的单元测试工具之一,适用于多种编程语言,如 Java (JUnit)、C++ (CppUnit)、Delphi (DUnit)、.NET (NUnit) 和 PHP (PHPUnit) 等。这些工具通常提供开源代码,便于开发者快速...
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标准库是C语言编程的基础,它提供了一系列预定义的函数和数据类型,方便开发者进行各种操作。在这个概述中,我们将重点关注两个关键的头文件:`ctype.h` 和 `stdio.h`。 首先,`ctype.h` 头文件包含了一系列用于...
3. **算法优化** - "编程之美 让CPU占用率曲线听你指挥.pdf" 暗示了优化代码和算法的重要性。面试中,展示你对算法的理解,如排序、查找、动态规划等,并能解释如何通过优化降低CPU占用率。 4. **数据结构与算法** ...
2. **编程之美 让CPU占用率曲线听你指挥.pdf**:此题目可能关注如何优化程序性能,降低CPU占用率。这需要了解CPU调度、并发编程和算法效率。优化技巧可能包括代码重构、算法改进、线程池的使用、异步处理等。 3. **...
1. 执行SQL语句:SELECT COUNT(DISTINCT 学号) FROM 成绩 WHERE 分数>60 查询成果中包括的元组数目是多少? 答案:3 2. SQL语言中,删除一种表的命令是? 答案:DROP 3. 请写出查询student_info_table表中姓名为...
该程序计算从2到100的偶数之和,因为FOR循环步长为2,所以只累加偶数,结果是B.1到100中偶数的和。 14. **Visual FoxPro - 索引操作** 索引文件会随着表文件的关闭而关闭,因此选项D. 索引文件不随表文件的关闭而...
"编程之美"中的问题可能涵盖了排序、搜索、图论等多种算法。例如,“寻找最大的K个数”可能涉及到快速选择或堆排序;“求二叉树中节点的最大距离”可能需要用到深度优先搜索或广度优先搜索;“1的数目”和“求二进制...
1. **编程之美 让CPU占用率曲线听你指挥.pdf**: 这可能涉及到系统优化和性能监控。面试中可能会问到如何通过编程手段来控制或优化CPU使用率,例如通过多线程、异步处理、任务调度等方法。同时,面试者需要了解操作...