算法第四版1.1基础编程模型1.1.1至1.1.13

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()方法了。
有兴趣可以自行了解。
 */






























  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值