注:本练习题答案系个人阅读后所作解答,非原书所配答案。(由于水平有限,文中出现错误还望谅解与指正)
练习1:
package lib.fourth;
public class Exercise_1 {
public static void main(String[] args) {
for(int i = 1; i <= 100; i++) {
System.out.print((i < 10) ? i + " " : i + " ");
if(i % 20 == 0)
System.out.println();
}
}
} /* Output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
*///:~
练习2:
package lib.fourth;
public class Exercise_2 {
public static void main(String[] args) {
int a = (int)(Math.random() * 100);
int b = (int)(Math.random() * 100);
System.out.print(a);
for(int i = 1; i < 25; i++) {
if(a > b)
System.out.print(">" + b);
else if(a < b)
System.out.print("<" + b);
else
System.out.print("=" + b);
a = b;
b = (int)(Math.random() * 100);
}
}
} /* (Execute to see output) *///:~
练习3:
package lib.fourth;
public class Exercise_3 {
public static void main(String[] args) {
int a = (int)(Math.random() * 100);
int b = (int)(Math.random() * 100);
System.out.print(a);
while(true) {
if(a > b)
System.out.print(">" + b);
else if(a < b)
System.out.print("<" + b);
else
System.out.print("=" + b);
a = b;
b = (int)(Math.random() * 100);
}
}
} /* (Execute to see output,
In the need to press "Ctrl-C" interrupt)
*///:~
练习4:
package lib.fourth;
public class Exercise_4 {
public static void main(String[] args) {
for(int i = 3; i < 100; i++) {
for(int j = 2; j < i; ) {
if(i % j != 0) {
if(i == j + 1)
System.out.print(i + " ");
j++;
}
else
break;
}
}
}
} /* Output:
3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
*///:~
练习5:
package lib.fourth;
import java.util.ArrayList;
public class Exercise_5 {
static int i = 0xA; //0xA = 1010;
static int j = 0x5; //0x5 = 0101;
static String toBinaryString(int x) {
ArrayList<Integer> list = new ArrayList<Integer>();
while(true) {
list.add(x % 2);
x = x / 2;
if(x == 0)
break;
}
StringBuffer s = new StringBuffer();
for(int i = list.size() - 1; i >= 0 ; i--)
s.append(list.get(i));
return s.toString();
}
public static void main(String[] args) {
System.out.println("i & j is " + toBinaryString(i & j));
System.out.println("i | j is " + toBinaryString(i | j));
System.out.println("i ^ j is " + toBinaryString(i ^ j));
}
} /* Output:
i & j is 0
i | j is 1111
i ^ j is 1111
*///:~
练习6:
package lib.fourth;
import static net.util.Print.*;
public class Exercise_6 {
static int test(int testval, int target, int begin, int end) {
if(testval > end || testval < begin)
return +2;
else {
if(testval > target)
return +1;
else if(testval < target)
return -1;
else
return 0;
}
}
public static void main(String[] args) {
print(test(10, 5, 1, 5));
print(test(5, 10, 1, 5));
print(test(5, 5, 1, 5));
}
} /* Output:
2
-1
0
*///:~
练习7:
package lib.fourth;
public class Exercise_7 {
public static void main(String[] args) {
for(int i = 1; i <= 100; i++) {
System.out.print((i < 10) ? i + " " : i + " ");
if(i % 20 == 0)
System.out.println();
if(i == 99)
break;
}
System.out.println();
for(int i = 1; i <= 100; i++) {
System.out.print((i < 10) ? i + " " : i + " ");
if(i % 20 == 0)
System.out.println();
if(i == 99)
return;
}
}
} /* Output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
*///:~
练习8:
package lib.fourth;
import java.util.Random;
import static net.util.Print.*;
public class Exercise_8 {
public static void main(String[] args) {
Random rand = new Random();
int c = rand.nextInt(5) + 'a';
printnb(c + "(" + (char)c + ") is: ");
switch(c) {
case 'a': printnb('a'); break;
case 'b': printnb('b'); break;
case 'c': printnb('c'); break;
case 'd': printnb('d'); break;
case 'e': printnb('e'); break;
}
print();
for(int i = 'a'; i <= 'e'; i++) {
switch(i) {
case 'a': printnb('a'); break;
case 'b': printnb('b'); break;
case 'c': printnb('c'); break;
case 'd': printnb('d'); break;
case 'e': printnb('e'); break;
}
printnb("-" + i + ", ");
}
print();
for(int i = 'a'; i <= 'e'; i++) {
switch(i) {
case 'a': printnb('a');
case 'b': printnb('b');
case 'c': printnb('c');
case 'd': printnb('d');
case 'e': printnb('e');
}
printnb(", ");
}
}
} /* Output: (66% match)
99(c) is: c
a-97, b-98, c-99, d-100, e-101,
abcde, bcde, cde, de, e,
*///:~
练习9:
package lib.fourth;
public class Fibonacci {
public static void main(String[] args) {
int smaller = 1;
int larger = 1;
System.out.print(smaller);
for(int i = 1; i < Integer.parseInt(args[0]); i++) {
larger = smaller + larger;
smaller = larger - smaller;
System.out.print(" " + smaller);
}
}
} /* Input: 5
Output:
1 1 2 3 5
*///:~
练习10:
package lib.fourth;
import java.util.ArrayList;
public class DigitalVampire {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
for(int i = 1001; i < 10000; i++) {
if(i % 100 != 0) {
char[] c = String.valueOf(i).toCharArray();
for(int j = 1; j < 4; j++) {
StringBuffer s1 = new StringBuffer();
StringBuffer s2 = new StringBuffer();
s1.append(c[0] - '0');
s1.append(c[j] - '0');
switch(j) {
case 1: s2.append(c[2] - '0');
s2.append(c[3] - '0'); break;
case 2: s2.append(c[1] - '0');
s2.append(c[3] - '0'); break;
case 3: s2.append(c[1] - '0');
s2.append(c[2] - '0'); break;
}
int p1 = Integer.parseInt(s1.toString());
int p2 = Integer.parseInt(s2.toString());
int n1 = Integer.parseInt(s1.reverse().toString());
int n2 = Integer.parseInt(s2.reverse().toString());
if(i == p1 * p2 || i == p1 * n2 || i == p2 * n1 ||
i == n1 * n2) {
if(list.isEmpty() ||list.get(list.size() - 1) != i)
list.add(i);
}
}
}
}
for(int x : list)
System.out.print(x + " ");
}
} /* Output:
1260 1395 1435 1530 1827 2187 6880
*///:~
-END-