摘要:/* 题目:提取子串 内容: 【代码填空】(满分12分) 串“abcba”以字母“c”为中心左右对称;串“abba” 是另一种模式的左右对称。这两种情况我们都称这个串是镜像串。特别地,只含有1个字母的串,可以看成是第一种模式的镜像串。 一个串可以含有许多镜像子串。我们的目标是求一个串的最大镜像子串(最长的镜像子串),如果有多个最大镜像子串,对称中心靠左的优先选中。例如:“abcdeefghhgfeiieje444k444lmn”的最大镜像子串是:“efghhgfe” 下面的静态方法实现了该功能,请仔细阅读并分析代码,填写空白处的代码,使得程序的逻辑合理,结果正确。 // 求最大(...
阅读全文
摘要:/* 题目:最大数 内容: [12,127,85,66,27,34,15,344,156,344,29,47,....] 这是某设备测量到的工程数据。 因工程要求,需要找出最大的5个值。 一般的想法是对它排序,输出前5个。但当数据较多时,这样做很浪费时间。因为对输出数据以外的数据进行排序并非工程要求,即便是要输出的5个数字,也并不要求按大小顺序,只要找到5个就可以。 以下的代码采用了另外的思路。考虑如果手里已经抓着5个最大数,再来一个数据怎么办呢?让它和手里的数据比,如果比哪个大,就抢占它的座位,让那个被挤出来的再自己找位子,.... import java.util.*; p...
阅读全文
摘要:/* 题目:割圆 内容: 南北朝时,我国数学家祖冲之首先把圆周率值计算到小数点后六位,比欧洲早了1100年!他采用的是称为“割圆法”的算法,实际上已经蕴含着现代微积分的思想。 如图【1.jpg】所示,圆的内接正六边形周长与圆的周长近似。多边形的边越多,接近的越好!我们从正六边形开始割圆吧。 如图【2.jpg】所示,从圆心做弦的垂线,可把6边形分割为12边形。该12边形的边长a'的计算方法很容易利用勾股定理给出。之后,再分割为正24边形,....如此循环会越来越接近圆周。 之所以从正六边开始,是因为此时边长与半径相等,便于计算。取半径值为1,开始割圆吧! 以下代码描述了割圆过程。 ...
阅读全文
摘要:/* 题目:计算行程 内容: 计算行程 低碳生活,有氧运动。骑自行车出行是个好主意。小明为自己的自行车装了个计数器, 可以计算出轮子转动的圈数。在一次骑车旅行中,出发时计算器的示数为begin,到达目的地时的示数为end。 下列代码计算了小明一共骑行了多远(单位:公里)。其中d表示小明自行车轮子的直径(单位:米)。 把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。 public static double getDistance(int begin, int end, double d) { return (end-begin) * Math...
阅读全文
摘要:/* 题目:整数翻转 内容: 以下程序把一个整数翻转(8765变为:5678),请补充缺少的代码。 int n = 8765; int m = 0; while(n>0) { m = ________________________; n = n / 10; } System.out.println(m);*/ 1 class pro26{ 2 public static void main(String[] args){ 3 int n = 8765; 4 int m = 0; 5 while(n>0) 6 ...
阅读全文
摘要:/* 题目:圆周率 内容: 圆周率 我国古代数学家对圆周率方面的研究工作,成绩是突出的。三国时期的刘徽、南北朝时期的祖冲之都在这个领域取得过辉煌战绩。 有了计算机,圆周率的计算变得十分容易了。如今,人们创造了上百种方法求π的值。其中比较常用且易于编程的是无穷级数法。 π/4 = 1 – 1/3 + 1/5 – 1/7 + 1/9 - … 是初学者特别喜欢的一个级数形式,但其缺点是收敛太慢。 π/2 = 1 + 1/3 +1/3*2/5 + 1/3*2/5*3/7 + 1/3*2/5*3/7*4/9 + … 是收敛很快的一个级数方法。下面的代码演示了用这种方法计算π值。请填写缺失的代码部分。把.
阅读全文
摘要:/* 题目:杨辉三角系数 内容: (a+b)的n次幂的展开式中各项的系数很有规律,对于n=2,3,4时分别是:1 2 1, 1 3 3 1,1 4 6 4 1。这些系数构成了著名的杨辉三角形: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 下列的程序给出了计算第m层的第n个系数的计算方法,试完善之(m,n都从0算起)。 public static int f(int ...
阅读全文
摘要:/* 题目:树形显示 内容: 树形结构应用十分广泛。 下面这段代码根据用户添加的数据,在内存中构建一个逻辑上等价的树形结构。 通过ShowTree() 可以把它显示为控制中的样子。 其中: a.add('a', 'b'); a.add('b', 'e'); 表示:'b' 作为 'a' 的孩子节点;'e' 作为 'b'的孩子节点。 如代码中给出的示例数据,输出结果应该为: a--b--e | |--f--j | |--k |--c |--d--g--h |--i 请阅读
阅读全文
摘要://这道题目,先背吧,/* 题目:文件管理 内容: 显示“DaSai”目录下以”Ex”开头的文件和目录,写了如下代码,请完善之: import java.io.*; class JavaFilter implements FilenameFilter{ String jf; JavaFilter(String s){ jf=s; } //实现FilenameFilter接口的accept()方法 public boolean accept(File dir,String name){ return name.startsWith(jf);//name的前缀是否是参数jf ...
阅读全文
摘要:/* 题目:数组转置 内容: 编写程序将2行3列的数组行列置换复制给3行2列的数组(即数组的转置)。已经写了如下代码,请完善之: class y{ public static void main(String[] args) throws Exception { int a[][]={{1,2,3},{4,5,6}}; int b[][]=new int[3][2]; for(int i=0;i<2;i++){ for(int j=0;j<3;j++){ _____________________; } } } }*/ 1 class pr...
阅读全文
摘要:/* 题目:蔬菜价格 内容: 计算蔬菜总价 为了丰富群众菜篮子,平抑菜价,相关部分组织了蔬菜的调运。今某箱中有多个品种的蔬菜。蔬菜的单价(元/公斤)存放在price数组中,蔬菜的重量(公斤)存放在weight数组中。下面的代码计算该箱蔬菜的总价,试完善之。 把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。 public static double getTotal(double[] price, double[] weight) { double x = 0; for(int i=0; i<price.length; i++) {...
阅读全文
摘要:/* 题目:串的重复 内容: 代码的目标:判断一个串是否为某个基本串的简单复制构成的。 例如: abcabcabc,它由“abc”复制3次构成,则程序输出:abc aa 由“a”复制两次构成,则程序输出:a axa 不是简单复制构成,则不输出任何信息 aaxx 也不是仅仅由简单复制构成,不输出信息。 请阅读下面的代码,填写缺失的部分(下划线部分)。 注意:请把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。 直接写在题面中不能得分。 public class DaSai { public static void findRepeat(String ..
阅读全文
摘要:/* 题目:三进制转十进制 内容: 不同进制的数值间的转换是软件开发中很可能会遇到的常规问题。 下面的代码演示了如何把键盘输入的3进制数字转换为十进制。试完善之。 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String s = br.readLine(); int n = 0; for(int i=0; i<s.length(); i++) { char c = s.charAt(i); if(c<'0' || c > '2') throw
阅读全文
摘要:/* 题目:扑克牌移动 内容: 下面代码模拟了一套扑克牌(初始排序A~K,共13张)的操作过程。 操作过程是: 手里拿着这套扑克牌,从前面拿一张放在后面,再从前面拿一张放桌子上, 再从前面拿一张放在后面,.... 如此循环操作,直到剩下最后一张牌也放在桌子上。 下面代码的目的就是为了求出最后桌上的牌的顺序。 初始的排列如果是A,2,3...K,则最后桌上的顺序为: [2, 4, 6, 8, 10, Q, A, 5, 9, K, 7, 3, J] import java.util.*; public class A23 { public static List moveCard(List s..
阅读全文
摘要:/* 题目:最小距离 内容: 最近距离 已知平面上的若干点的位置,存入一个List中。现在需要计算所有这些点中, 距离最近的两个点间的最小距离。请补全缺失的代码。 把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。 class MyPoint { private double x; // 横坐标 private double y; // 纵坐标 public MyPoint(double x, double y) { this.x = x; this.y = y; } public static double dis...
阅读全文
摘要:/* 题目:排列平方数 内容: 若干不同的数字,排列组合后能产生多少个平方数? 下面的代码解决了这个问题。 对于:1,6,9 排列后,可产生3个平方数: 169 196 961 请阅读下面的代码,填写缺失的部分(下划线部分)。 注意:请把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应 题号的“解答.txt”中即可。 直接写在题面中不能得分。 public class My { public static void f(int[] a, int n) { if(n==a.length-1) { int k = 0; for(int i=0; i<a.len...
阅读全文
摘要:/* 题目:拍7游戏 内容: 许多人都曾经玩过“拍七”游戏。规则是:大家依次从1开始顺序数数,数到含有7或7的倍数的要拍手或其它规定的方式表示越过(比如:7,14,17等都不能数出),下一人继续数下面的数字。违反规则者受罚。下面的程序模拟这个过程,拍7的情况输出“*”,请完善之。 for(int i=1; i<100; i++) { if(i % 7 == 0) printf("*\n"); else if(___________________) printf("*\n"); else printf("%d\n", i); }
阅读全文
摘要:/* 个人觉得这个题目给的提示太少,在短时间内很难看懂所有代码的思路, 但是仅仅看局部代码的话,填空题,,,,还是可以猜一猜的,,,*//* 题目:迷宫问题 内容: 迷宫问题 对于走迷宫,人们提出过很多计算机上的解法。深度优先搜索、广度优先搜索是使用最广的方法。 生活中,人们更愿意使用“紧贴墙壁,靠右行走”的简单规则。 下面的代码则采用了另一种不同的解法。它把走迷宫的过程比做“染色过程”。 假设入口点被染为红色,它的颜色会“传染”给与它相邻的可走的单元。这个过程不断进行下去, 如果最终出口点被染色,则迷宫有解。 仔细分析代码中的逻辑,填充缺少的部分。 把填空的答案(仅填空处的答案,不包括题面.
阅读全文
摘要:/* 题目:孪生素数 内容: 孪生素数 所谓孪生素数指的就是间隔为 2 的相邻素数,它们之间的距离已经近得不能再近了, 就象孪生兄弟一样。最小的孪生素数是 (3, 5),在 100 以内的孪生素数还有 (5, 7), (11, 13), (17, 19), (29, 31), (41, 43), (59, 61) 和 (71, 73),总计有 8 组。 但是随着数字的增大,孪生素数的分布变得越来越稀疏,寻找孪生素数也变得越来越困难。 那么会不会在超过某个界限之后就再也不存在孪生素数了呢? 孪生素数有无穷多对!这个猜想被称为孪生素数猜想,至今没有被严格证明。 但借助于计算机我们确实可以找到任..
阅读全文