摘要:
1.2.11根据Date的API实现一个SmartDate类型,在日期非法时抛出一个异常。答:参考资料:月份中的二月是28天还是29天,需看年份是否为闰年,闰年定义为:年份能被400整除的是闰年,或者年份能被4整除但不能被100整除的是闰年。Code:public class SmartDate{ 阅读全文
摘要:
1.2.10编写一个类VisualCounter,支持加一和减一操作。它的构造函数接受两个参数N和max,其中N指定了操作的最大次数,max指定了计数器的最大绝对值。作为副作用,用图像显示每次计器变化后的值。答:Draw Point时操作次数作为X坐标,计数器值作为Y坐标。public class 阅读全文
摘要:
1.2.9修改BinarySearch(请见1.1.10.1节中的二分查找代码),使用Counter统计在有查找中被检查的键的总数并在查找全部结束后打印该值。提示:在main()中创建一个Counter对象并将它作为参数传递给rank()。答:BinarySearch Code:import jav 阅读全文
摘要:
1.2.8设a[]和b[]均为长数百万的整形数组。以下代码的作用是什么?有效吗?int[] t=a;a=b;b=t;答:这段代码会将它们交换。它的效率不可能再高了,因为它复制的是引用而不需要复制数百万个元素。 阅读全文
摘要:
1.2.6如果字符串s中的字符循环移动任意位置之后能够得到另一个字t,那么s就被称为t的回环变位(circular rotation)。例如,ACTGACG就是TGACGAC的一个回环变位,反之亦然。判定这个条件在基因组序列的研究中是很重要的。编写一个程序检查两个给定的字符串s和t是否互为回环变位。 阅读全文
摘要:
1.2.7以下递归函数的返回值是什么?public static String mystery(String s){ int N=s.length(); if (N<=1) return s; String a=s.substring(0,N/2); String b=s.substring(N/2 阅读全文
摘要:
1.2.5以下这段代码会打印出什么?String s="Hello World";s.toUpperCase();s.subString(6,11);StdOut.println(s);答:"Hello World"。String对象是不可变的--所有字符串方法都会返回一个新的String对象(但它 阅读全文
摘要:
1.2.3编写一个Interval2D用例,从命令行接受参数N、min和max。生成N个随机的2D间隔,其宽和高均匀地分布在单位正方形中的min和max之间。用StdDraw画出它们并打印出相关的间隔对的数量以及有包含关系的间隔对数量。解:相交是两个矩形区域有共点,包含是指一个矩形在一个矩形内,包含 阅读全文
摘要:
1.2.4以下这段代码会打印出什么?String string1="hello";String string2=string1;string1="world";StdOut.println(string1);StdOut.println(string2);解:worldhello 阅读全文
摘要:
1.2.2编写一个Interval1D的用例,从命令行接受一个整数N。从标准输入中读取N个间隔(每个间隔由一对double值定义)并打印出所有相交的间隔对。 解:public class Test2{ public static void main(String[] args) { int N=In 阅读全文