- 浏览: 1466423 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
luhouxiang:
写的很不错,学习了
Extjs 模块化动态加载js实践 -
kingkongtown:
如果想改成淘宝后台那样,可以在编辑器批量上传图片呢?
kissy editor 阶段体会 -
317966578:
兄弟我最近也在整jquery和caja 开放一些接口。在git ...
caja 原理 : 前端 -
liuweihug:
Javascript引擎单线程机制及setTimeout执行原 ...
setTimeout ,xhr,event 线程问题 -
辽主临轩:
怎么能让浏览器不进入 文档模式的quirks模式,进入标准的
浏览器模式与文本模式
不知道是不是 没事闲的,想出来一道题:
0 到 n 的数字中,有几个数字,包含某个个位数,如
0到11有 2个数包含 1 ------- 1, 11
1个数包含 4 ------- 4
2 个数包含 0 ------- 0,10
结果停不下来了,花了一晚上搞了个程序,我脑袋笨还是咋的,可累死了,不知道程序高不高效,总比一个个个数好,但 0统计没能整合在一起,怎么做啊,其他倒都可以了
public class NumberCount { public static void easy(int s, int n, int d) { System.out.println("-----------------------"); int count = 0; for (int i = s; i <= n; i++) { if ((i + "").indexOf(d + "") != -1) { count++; //System.out.println(i); } } System.out.println(count); System.out.println("-----------------------"); } public static void main2(String[] args) { Time t = new Time(); t.start(); System.out.println(coutD(98798, 0)); System.out.println("duration :" + t.stop()); t.start(); easy(0, 98798, 0); System.out.println("duration :" + t.stop()); } //0-n 有几个数字 包含 0 public static int coutD(int n, int d) { String nstr = n + ""; int l = nstr.length(); if (d == 0) { throw new RuntimeException("error :d !=0 "); } int[] ar = generateN(l, d); int result = 0; for (int i = 0; i < l; i++) { String c = nstr.charAt(i) + ""; int cnum = Integer.parseInt(c); if (cnum < d) { } else if (cnum == d) { result += ar[l - i]; //直接把后面的算出来 if (i != l - 1) result += Integer.parseInt(nstr.substring(i + 1)); break; } else { result += ar[l - i] + (cnum - d - 1) * ((ar[l - i] - 1) / d) + Math.pow(10, l - i - 1) - 1; } } return result; } //d 内 有几个 数 包含 d //d0 内 有几个 数 包含 d //d00 内 有几个 数 包含 d //d000 内 有几个 数 包含 d public static int[] generateN(int n, int d) { int[] narray = new int[n + 1]; narray[1] = 1; for (int i = 2; i <= n; i++) { //ex: //1000 {0-100 101-199 200-999 1000} //2000 {0-200 201-299 300-999 1000} // (narray[i - 1] + (int) Math.pow(10, i - 2) - 1 + (9 - d) * ((narray[i - 1] - 1) / d)); //(narray[i - 1] - 1) / d) 每100 个 含的个数 narray[i] = (narray[i - 1] + (int) Math.pow(10, i - 2) - 1 + (9 - d) * ((narray[i - 1] - 1) / d)) * d + 1; // System.out.println("narray[" + i + "]=" + narray[i]); } return narray; } //1 内 有几个 数 包含 d //10 内 有几个 数 包含 d //100 内 有几个 数 包含 d public static int[] generateN2(int n, int d) { int[] narray = new int[n + 2]; narray[1] = d > 1 ? 0 : 1; narray[2] = d <= 1 ? 2 : 1; int base = 0; for (int i = 3; i <= n; i++) { base = narray[i - 1]; //100,100,0-100 101-200 不一样 if (d <= 1) base--; //0 特殊 //假设 10000 if (d != 0) //d=6 //0-1000 6001-6999 区别考虑 ,6001-6999 都带 6,下面 乘的是 9 ,下面就不考虑 6001-6999 narray[i] = (int) Math.pow(10, i - 2) - 1; else //0-1000 6001-7000 区别 //00XX,10XX,20XX,....90XX 特殊于 0-1000 10 个 Math.pow(10, i - 3) // 但 0000,1000,2000,考虑过了、,减10 //写出来 我都有点不懂 。。。。 // narray[i] = ((int) Math.pow(10, i - 3) - 1)*10; narray[i] = (int) Math.pow(10, i - 2) - 10; narray[i] += 9 * base + 1; //0,1 边界特殊 100,1000,。。。 if (d <= 1) narray[i]++; } return narray; } //0-n 有几个数字 包含 0 public static int coutD2(int n, int d) { int base = 0; String nstr = n + ""; int l = nstr.length(); if (l == 1) { if (n >= d) return 1; return 0; } int[] ar = generateN2(l, d); int result = 0; for (int i = 0; i < l; i++) { String c = nstr.charAt(i) + ""; int cnum = Integer.parseInt(c); if (cnum < d) { result += ar[l - i] * cnum; } else if (cnum == d) { result += d * ar[l - i]; //直接把后面的算出来 if (i != l - 1) result += Integer.parseInt(nstr.substring(i + 1)); //0,1 特殊 if (d > 1) result += 1; break; } else { base = ar[l - i]; //0,1特殊 if (d <= 1) base--; result += (cnum - 1) * base; //0 特殊 if (d != 0) result += Math.pow(10, l - i - 1); else result += ar[l - i] ; } } return result; } public static void main(String[] args) { /*int[] a1 = generateN(9, 1); System.out.println(Arrays.toString(a1));*/ /* int[] a2 = generateN2(9, 0); System.out.println(Arrays.toString(a2));*/ Time t = new Time(); t.start(); System.out.println(coutD2(45645, 2)); System.out.println("duration :" + t.stop()); t.start(); easy(0, 45645, 2); System.out.println("duration :" + t.stop()); } }
发表评论
-
构建前端 DSL
2012-10-11 22:10 5375目前在传统的软件开 ... -
circular dependency
2011-12-11 18:23 3940循环依赖是和语言无关 ... -
write html parser
2011-12-01 02:48 2928首先需要声明 html 不能用正则表达式来直接匹配进行内容抽取 ... -
转载:瀑布流布局浅析
2011-09-29 19:02 2856简介 如果你经 ... -
循环引用下的深度克隆
2011-08-04 20:39 2332深度复制和浅度复制 是当初初学 c 遇到的第一批问题,似乎使 ... -
开关状态信息的保存
2010-08-30 15:23 1688系统中常常会存在大量的状态信息,特别是0-1值信息,某个条件是 ... -
LL文法算法-1
2010-03-12 22:30 3481为了实现自顶向下的语法分析器,需要将文法的 1.左递归消 ... -
NFA到DFA的转换演示
2010-03-07 20:57 12736复习一下编译,在龙书中提到的NFA(不确定有穷自动机)到D ... -
gzip压缩实现注意
2010-01-18 22:19 0给你提点建议,你自己实现的compress不是很好哦,1. C ... -
三点共线判断
2010-01-12 19:43 14383经典的计算几何方面问题,判断二维坐标系中是否三个点在一条直线上 ... -
多维数组迭代器应用
2010-01-10 18:04 1722在代码之美中提到了这个问题,经常遇到嵌套数组的情况即多维数组情 ... -
google 开源项目
2009-12-28 20:25 0Google是支持开源运动的最大公司之一,它们现在总共发布 ... -
大数据量,海量数据 处理方法总结
2009-12-12 02:14 0最近有点忙,稍微空闲下来,发篇总结贴。 大数据量的问题是很 ... -
Bloom Filter Technical Report
2009-12-12 01:57 0Bloom Filter Technical Report ... -
找零问题
2009-10-31 16:07 2384问题描述: 有n美元需找零. 美 ... -
背包问题javascript演示
2009-10-26 16:28 2525背景: 经典递归示例:背包问题 ... -
hanoi问题求解
2009-10-19 23:54 0http://jnotnull.iteye.com/ ... -
后缀表达式的javascript转化演示
2009-10-19 23:46 1642复习经典算法,原算法:数据结构(用面向对象方法与c++描述) ... -
LCA In Javascript 演示
2009-10-05 17:24 1770理论: LCA 即 Least Common Anc ... -
Array.prototype.sort 稳定性问题
2009-09-16 13:49 2905引例 首先看一段代码: ...
相关推荐
本文将通过Java语言解决一道数字组合题,题目要求使用9个数字(1-9)组成3个数字,第二组数字是第一组数字的两倍,第三组数字是第一组数字的3倍,且每个数字只能使用一次。 首先,根据题目要求进行要点分析: 1. 9...
第六题是一道条件概率问题,需要计算单个种子发芽的概率,以及它来自高发芽率盒的概率。 第七题是一个决策问题,涉及期望收益计算,利用每次射击成功的概率计算总收益的期望值。 第八题是质量控制问题,使用二项...
例如,2016年新课标文科卷的一道试题,通过二维表格展示了续保人的出险情况和保费之间的关系,要求学生根据数据计算概率和平均保费,考察了数据分析和运算素养。 频数分布图、频率分布表和频率分布直方图则用于展现...
根据给定的信息,本文将对一道来自微软的算法优化题目进行深入分析,主要涉及如何高效地计算出在从1到N的所有整数中数字“1”出现的总次数。 ### 题目背景 给定一个十进制正整数N,任务是从1开始到N的所有整数中...
"统计一个整数的位数"是PTA中的一道典型问题,涉及到的基础知识点主要是整数的表示和计算。在解决这类问题时,我们需要理解计算机如何存储整数,以及如何通过编程语言来处理这些数字。 首先,计算机中的整数是以二...
第4题是一道字符串处理的典型题目,它要求统计一个字符串中每个字母出现的次数,并将结果存储在数组中。这个问题考验了解题者对字符串操作的熟练度,同时要求对字符进行判断和计数。 第5题则是一个较为复杂的题目,...
9. **192.py** - 可能对应LeetCode的192题,"Word Frequency"(词频统计),需要使用哈希表或字典来统计字符串中每个单词的出现次数。 10. **202.py** - 最后是202题,"Happy Number"(快乐数),这是一个简单的...
第一题是数字统计,涉及到数字中特定数字出现次数的计算。考生需要编写程序,统计指定范围内整数中数字2出现的次数。解决这一问题的关键在于掌握分离数字的技巧,并对每个数进行统计。算法较为简单,时间复杂度为O(R...
4. 一道数字序列推理题,可能涉及到数学的逻辑推理能力。 5. 一道社会保障制度的单选题,关注社会政策和福利体系。 6. 一段关于情感和社会性的论述,可能出现在语文或社科类试题中。 7. 一道关于群体风险与概率的...
在另一道题中,我们可能会遇到一个转动指针的游戏,指针会在标有不同分数的区域间停留。学生需要预测指针停在特定区域的次数。这类问题不仅锻炼了学生的计算能力,还训练了他们如何根据已知信息进行合理预测。 当...
这份试题为扫描版,可能意味着它是一个非电子格式的原始纸质试卷的数字化版本,且不包含答案,因此学生或教师在使用时需要自行批改或寻求解答。 在中学阶段,语文作为基础学科,其试题通常会包括以下几个方面: 1....
每一道题目都经过了深度解析,不仅给出了标准答案,还详细讲解了解题思路和方法,这对于考生理解和掌握各种题型至关重要。 高等数学是考研数学的基础,涉及微积分、极限理论、一元函数微分学、一元函数积分学、多元...
统计学在高三数学总复习中占据重要地位,尤其在第九章第四节,主要涉及三个核心概念:统计图表、数据的数字特征以及用样本估计总体。这些知识点是数据分析的基础,对于理解数据分布、提取信息和做出预测至关重要。 ...
以上解析涵盖了交换技术复习题中的单项选择题部分,针对每一道题目进行了详细的分析和解释。接下来的部分包括多项选择题、名词解释、判断改错以及简答题等内容,同样包含了丰富的知识点和技术细节,有助于全面理解和...
例如,第13题、14题、15题和16题可能要求学生填写数字、表达式或者解决某个数学问题的结果。其中,第16题的答案是②③,可能是一道关于集合或者逻辑关系的问题。 解答题部分是试卷的重点,共6小题,合计70分,每题...
4. 函数定义与调用:题目中的每一道题都是一个独立的函数,如`fun`,它们接收参数,执行特定任务,并可能返回结果。函数调用是程序设计中组织代码的重要方式,可以使代码结构清晰,便于复用和测试。 5. 指针与引用...
考生需要实现对数字的遍历检查,统计数字中特定数字出现的次数,并结合整除判断。 9. 字符三角形 此题涉及到多层循环的使用,创建特定形状的字符图案。 10. 计算(a+b)*(c-b)的值 这是一道涉及多项式运算的题目...
- 第16题可能是一道概率问题,要求学生计算两个数字之和为偶数的概率。 - 第17题可能涉及到线性方程组的解法,让学生解决实际应用问题。 - 第18题可能是一道几何证明题,要求证明两个角相等。 - 第19题可能是...
这是一道基础的编程练习,旨在帮助学习者掌握C语言的基本语法、循环结构以及条件判断。下面我们将详细讲解实现这个功能所需的C语言知识。 首先,我们要了解C语言的基础结构。一个C程序通常由预处理指令、函数定义和...
1. 第四题可能是一道数据分析题,需要分析吞吐量随时间的变化趋势,并进行计算。 2. 第五题可能是关于收入统计的,需要学生理解数据图表,计算最高和最低收入,以及年增长率。 **几何证明题部分:** 六题和七题涉及...