public class Main { public static void main(String[] args) { // write your code here System.out.println((0 + 15) / 2); System.out.println(2.0e-6 * 100000000.1); System.out.println(true && false || true && true); } } /* 习题1.1.1答案 7 200.0000002 true 这题说明and优先于or比较运算符 */public static void main(String[] args) { // write your code here System.out.println((1 + 2.236) / 2); System.out.println(1 + 2 + 3 + 4.0); System.out.println(4.1 >= 4); System.out.println(1 + 2 + "3"); } } /* 答案是 1.618 浮点型与整型同时参与除法运算,由整除变为除法 10.0 浮点型与整型同时参与运算时,自动转换为浮点型 true 布尔表达式输出为true或false 33 算术运算符功能优先于链接字符串功能 */import edu.princeton.cs.algs4.*; public class Main { public static void main(String[] args) { int a = StdIn.readInt(); int b = StdIn.readInt(); int c = StdIn.readInt(); if (a == b && b ==c ){ System.out.println("equal"); }else { System.out.println("not equal"); } } } /* 1.1.3答案 */
//1.1.4答案:ad错,bc对。
import edu.princeton.cs.algs4.*; public class Main { public static void main(String[] args) { double x = 1.0; double y = 2.0; System.out.println(0< x & x < 1 & 0< y & y < 1); }//close main } /* 1.1.5答案 x,y自己改试一下 */
import edu.princeton.cs.algs4.*; public class Main { public static void main(String[] args) { int f = 0; int g = 1; for (int i = 0;i <= 15; i++){ StdOut.println(f); f = f + g; g = f - g; } }//close main } /* 1.1.6答案 : 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 */
//1.1.7答案: a, 3.009;b, 499500;c, 10000
import edu.princeton.cs.algs4.*; public class Main { public static void main(String[] args) { System.out.println('b'); System.out.println("b" + 'c'); System.out.println((char) ('a' + 4)); }//close main } /* 1.1.8输出: b bc e */
/*
这题书中就有答案。至于原理,请自行在高中数学书中查找 1.1.9答案: String s = ""; for (int n = N; n > 0;n /=2) s = (n % 2) + s; */1.1.10没有为数组分配内存,或者用ArrayList的append()方法。
import edu.princeton.cs.algs4.*; public class Main { public static void main(String[] args) { boolean [][] booleans = new boolean[2][2]; booleans[0][0] = true; booleans[0][1] = false; booleans[1][0] = false; booleans[1][1] = true; for(boolean[] array : booleans){ for (boolean boolValue : array){ if (boolValue){ System.out.print('*'); } else System.out.print(' '); }//inner loop }//outer loop }//close main } /* 1.1.11输出: * * */
import edu.princeton.cs.algs4.*; public class Main { public static void main(String[] args) { int [] a = new int[10]; for (int i = 0; i < 10; i++) a[i] = 9 - i; for (int i = 0;i < 10; i++) a[i] = a[a[i]]; for (int i= 0;i < 10; i++) System.out.println(i); }//close main } /* 1.1.12答案:前面两个循环是大大的忽悠 0 1 2 3 4 5 6 7 8 9 */
import java.util.Arrays; import edu.princeton.cs.algs4.*; public class Main { public static void main(String[] args) { int M =(int) (Math.random() * 10); int N =(int) (Math.random() * 10); int[][] array = new int[M][N]; int[][] newArray = new int[N][M]; for (int i = 0; i < M; i++){ for (int j = 0; j < N; j++ ){ array[i][j] = (int) (Math.random() * 10); } } System.out.println(Arrays.deepToString(array)); for (int i = 0; i < M; i++){ for (int j = 0; j < N; j++ ){ newArray[j][i] = array[i][j]; } } System.out.println(Arrays.deepToString(array)); System.out.println(Arrays.deepToString(newArray)); }//close main } /*1.1.13答案; 我看过博客上有不少有关二维数组进行转置的,他们给出的答案有的将矩阵设想为例如3*3的方阵,这明显自降难度, 他们可能认为用方阵能够想使用同一个reference的名称,满足所谓的原地转置,来满足心中的自豪感。 但是,明显题目要求的是M行N列的方阵,谁规定M = N呢? 我们的答案要有普遍性。 可能有人会认为转置得到的数组应该使用新的内存地址,
这就涉及到Java的万类之王Object的clone()方法了。 有兴趣可以自行了解。
*/
算法第四版1.1基础编程模型1.1.1至1.1.13
最新推荐文章于 2018-10-25 10:56:00 发布