java语言程序设计基础篇第八章编程练习题

1

import java.util.Scanner;
public class Main{
	public static void main(String[] args){
		final int row = 3;
		final int column = 4;
		Scanner input = new Scanner(System.in);
		double[][] num = new double[row][column];
		
		for(int i = 0; i < row; ++i)
			for(int j = 0; j < column; ++j)
				num[i][j] = input.nextDouble();

		for(int i = 0; i < column; ++i){
			double sum = 0;
			for(int j = 0; j < row; ++j){
				sum += num[j][i];
			}
			System.out.println(sum);
		}
	}
}

2

import java.util.Scanner;
public class Main{
	public static void main(String[] args){
		final int rac = 4;
		Scanner input = new Scanner(System.in);
		double[][] num = new double[rac][rac];
		
		for(int i = 0; i < rac; ++i)
			for(int j = 0; j < rac; ++j)
				num[i][j] = input.nextDouble();
		double sum = 0;
		for(int i = 0; i < rac; ++i)
			sum += num[i][i];
		System.out.println(sum);
	}
}

3

public class Main{
	
	public static void main(String[] args){
		char answer[][] = {
				{'A','B','A','C','C','D','E','E','A','D'},
				{'D','B','A','B','C','A','E','E','A','D'},
				{'E','D','D','A','C','B','E','E','A','D'},
				{'C','B','A','E','D','C','E','E','A','D'},
				{'A','B','D','C','C','D','E','E','A','D'},
				{'B','B','E','C','C','D','E','E','A','D'},
				{'B','B','A','C','C','D','E','E','A','D'},
				{'E','B','E','C','C','D','E','E','A','D'}
		};
		
		char keys[] = {'D','B','D','C','C','D','A','E','A','D'};
		int[] student = new int[answer.length];
		for(int i = 0; i < answer.length; ++i){
			int correctCount = 0;
			for(int j = 0; j < answer[i].length; ++j){
				if(answer[i][j] == keys[j])
					++correctCount;
			}
			student[i] = correctCount;
		}
		java.util.Arrays.sort(student);
		
		for(int i = 0; i < student.length; ++i)
			System.out.println(student[i]);
	}
}

4

public class Main{
	
	public static void main(String[] args){
		int[][] time = {
				{2,4,3,4,5,8,8},
				{7,3,4,3,3,4,4},
				{3,3,4,3,3,2,2},
				{9,3,4,7,3,4,1},
				{3,5,4,3,6,3,8},
				{3,4,4,6,3,4,4},
				{3,7,4,8,3,8,4},
				{6,3,5,9,2,7,9}
		};
		
		int[] temp = null;
		
		for(int i = 0; i < 7; ++i){
			for(int j = i+1; j < 8; ++j){
				if(time[i][6] < time[j][6]){
					temp = time[i];
					time[i] = time[j];
					time[j] = temp;
				}
			}
		}
		
		for(int i = 0; i < 8; ++i){
			for(int j = 0; j < 7; ++j){
				System.out.print(time[i][j] + " ");
			}
			System.out.println();
		}
		
	}
}

5

import java.util.Scanner;

public class Main{
	
	public static void main(String[] args){
		Scanner input = new Scanner(System.in);
		double[][] matrix1 = new double[3][3];
		double[][] matrix2 = new double[3][3];
		System.out.print("Enter matrix1:");
		for(int i = 0; i < 3; ++i)
			for(int j = 0; j < 3; ++j)
				matrix1[i][j] = input.nextDouble();
		
		System.out.print("Enter matrix2:");
		for(int i = 0; i < 3; ++i)
			for(int j = 0; j < 3; ++j)
				matrix2[i][j] = input.nextDouble();
		
		matrix1 = addMatrix(matrix1,matrix2);
		
		for(int i = 0; i < 3; ++i){
			for(int j = 0; j < 3; ++j){
				System.out.print(matrix1[i][j] + " ");
			}
			System.out.println();
		}
	}
	
	public static double[][] addMatrix(double[][] a, double[][] b){
		for(int i = 0; i < 3; ++i)
			for(int j = 0; j < 3; ++j)
				a[i][j] += b[i][j];
		return a;
	}
}

6

import java.util.Scanner;

public class Main{
	
	public static void main(String[] args){
		Scanner input = new Scanner(System.in);
		double[][] matrix1 = new double[3][3];
		double[][] matrix2 = new double[3][3];
		System.out.print("Enter matrix1:");
		for(int i = 0; i < 3; ++i)
			for(int j = 0; j < 3; ++j)
				matrix1[i][j] = input.nextDouble();
		
		System.out.print("Enter matrix2:");
		for(int i = 0; i < 3; ++i)
			for(int j = 0; j < 3; ++j)
				matrix2[i][j] = input.nextDouble();
		
		double[][] result = multiplyMatrix(matrix1,matrix2);
		
		for(int i = 0; i < 3; ++i){
			for(int j = 0; j < 3; ++j){
				System.out.printf("%.2f ",result[i][j]);
			}
			System.out.println();
		}
	}
	
	public static double[][] multiplyMatrix(double[][] a, double[][] b){
		double[][] result = new double[3][3];
		for(int i = 0; i < 3; ++i){
			for(int j = 0; j < 3; ++j){
				double sum = 0;
				for(int v = 0; v < 3; ++v)
					sum += a[i][v]*b[v][j];
				result[i][j] = sum;
			}
		}
		return result;
	}
}

7
。。。。。。。。。

8

import java.util.Scanner;
//暂时是这样想的,还可以用一个二维数组存储所有的解,然后遍历就好了
public class Main{
	
	public static void main(String[] args){
		final int inf = 999999999;
		Scanner input = new Scanner(System.in);
		System.out.print("Enter the number points: ");
		int numberOfPoints = input.nextInt();
		
		double[][] points = new double[numberOfPoints][4];
		
		for(int i = 0; i < points.length; ++i){
			java.util.Arrays.fill(points[i], inf);
		}
		
		System.out.print("Enter " + numberOfPoints + " points:");
		for(int i = 0; i < numberOfPoints; ++i){
			points[i][0] = input.nextDouble();
			points[i][1] = input.nextDouble();
		}
		
		int p1 = 0, p2 = 1;
		double shortestDistance = distance(points[p1][0],points[p1][1]
				,points[p2][0],points[p2][1]);
		
		for(int i = 0; i < points.length; ++i){
			for(int j = i+1; j < points.length; ++j){
				double distance = distance(points[i][0],points[i][1]
						,points[j][0],points[j][1]);
				
				if(distance < points[i][2]){
					points[i][2] = distance;
					points[i][3] = j;
				}
				if(distance < points[j][2]){
					points[j][2] = distance;
					points[j][3] = i;
				}
				
				if(shortestDistance > distance){
					p1 = i;
					p2 = j;
					shortestDistance = distance;
				}
			}
		}
		for(int i = 0; i < points.length; ++i){
			if(points[i][2] == shortestDistance){
				System.out.println("(" + points[i][0] + "," + points[i][1] + ")" + " (" 
						+ points[(int)points[i][3]][0] + "," + points[(int)points[i][3]][1] + ")" + "");
			}
		}
		System.out.println("Their diatance is " + shortestDistance);
	}
	
	public static double distance(double x1, double y1, double x2, double y2){
		return Math.sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1));
	}
}

9

import java.util.Scanner;

public class Main{
	static char[][] ch = new char[3][3];
	static int flag = 0;
	static Scanner cin = new Scanner(System.in);
	public static void main(String[] args){
		for(int i = 0; i < 3; ++i)
			java.util.Arrays.fill(ch[i], ' ');
		printMap();
		while(true){
			goingX();
			printMap();
			if(flag == 1)
				break;
			going0();
			printMap();
			if(flag == 1)
				break;
		}
		
	}
	
	public static void going0(){
		System.out.print("Enter a row(0,1 or 2) for plyaer 0:");
		int x = cin.nextInt();
		System.out.print("Enter a column(0,1 or 2) for plyaer 0:");
		int y = cin.nextInt();
		ch[x][y] = '0';

	}
	
	public static void goingX(){
		System.out.print("Enter a row(0,1 or 2) for plyaer X:");
		int x = cin.nextInt();
		System.out.print("Enter a column(0,1 or 2) for plyaer X:");
		int y = cin.nextInt();
		ch[x][y] = 'X';

	}
	
	public static void printMap(){
		System.out.printf("-------------\n");
		System.out.printf("| %c | %c | %c |\n",ch[0][0],ch[0][1],ch[0][2]);
		System.out.printf("-------------\n");
		System.out.printf("| %c | %c | %c |\n",ch[1][0],ch[1][1],ch[1][2]);
		System.out.printf("-------------\n");
		System.out.printf("| %c | %c | %c |\n",ch[2][0],ch[2][1],ch[2][2]);
		System.out.printf("-------------\n");
		if(check() == 1){
			System.out.println("X player win");
			flag = 1;
		}
		else if(check() == 2){
			System.out.println("0 player win");
			flag =1; 
		}
	}
	
	public static int check(){
		if(ch[0][0] == 'X' && ch[0][0] == ch[0][1] && ch[0][0] == ch[0][2])
			return 1;
		if(ch[0][0] == 'X' && ch[0][0] == ch[1][0] && ch[0][0] == ch[2][0])
			return 1;
		if(ch[0][0] == 'X' && ch[0][0] == ch[1][1] && ch[0][0] == ch[2][2])
			return 1;
		if(ch[1][1] == 'X' && ch[0][2] == ch[1][1] && ch[0][2] == ch[2][0])
			return 1;
		
		if(ch[0][0] == '0' && ch[0][0] == ch[0][1] && ch[0][0] == ch[0][2])
			return 2;
		if(ch[0][0] == '0' && ch[0][0] == ch[1][0] && ch[0][0] == ch[2][0])
			return 2;
		if(ch[0][0] == '0' && ch[0][0] == ch[1][1] && ch[0][0] == ch[2][2])
			return 2;
		if(ch[1][1] == '0' && ch[0][2] == ch[1][1] && ch[0][2] == ch[2][0])
			return 2;
		
		return 0;
	}
	
}

10

import java.util.Scanner;

public class Main{
	
	public static void main(String[] args){
		int[][] nums = new int[4][4];
		for(int i = 0; i < 4; ++i){
			for(int j = 0; j < 4; ++j){
				//此处竟然出现负数,不懂,只好取绝对值
				nums[i][j] = Math.abs((((int)System.currentTimeMillis())/(i+j+1))%2);
			}
		}

		int rowIndex = 0;
		int columnIndex =0 ;
		int rcount = 0;
		int rmaxCount = 0;
		int ccount = 0, cmaxCount = 0;
		for(int i = 0; i < 4; ++i){
			rcount = 0;
			ccount = 0;
			for(int j = 0; j < 4; ++j){
				if(nums[i][j] == 1)
					++rcount;
			}
			if(rcount > rmaxCount){
				rmaxCount = rcount;
				rowIndex = i;
			}
			
			for(int j = 0; j < 4; ++j){
				if(nums[j][i] == 1)
					++ccount;
			}
			if(ccount  > cmaxCount){
				cmaxCount = ccount;
				columnIndex = i;
			}
		}
		for(int i = 0; i < 4; ++i){
			for(int j = 0; j < 4; ++j){
				System.out.print(nums[i][j] + " ");
			}
			System.out.println();
		}
		System.out.println("The largest row index:" + rowIndex);
		System.out.println("The largest column index:" + columnIndex);
	}
}

11

import java.util.Scanner;

public class Main{
	
	public static void main(String args[]){
		Scanner cin = new Scanner(System.in);
		System.out.print("Enter a number between 0 and 511:");
		int num = cin.nextInt();
		int[] bits = new int[9];
		java.util.Arrays.fill(bits, 0);
		int i = 0;
		while(num > 0){
			bits[i] = num%2;
			num /= 2;
			++i;
		}
		System.out.println();
		
		for(int j = 8; j >= 0; --j){
			if(bits[j] == 1)
				System.out.print("T");
			else
				System.out.print("H");
			if(j%3 == 0)
				System.out.println();
		}
	}
}

12

。。。。。。。

13

import java.util.Scanner;

public class Main{
	
	public static void main(String args[]){
		Scanner cin = new Scanner(System.in);
		int rows = cin.nextInt();
		int columns = cin.nextInt();
		double[][] a = new double[rows][columns];
		for(int i = 0; i < rows; ++i){
			for(int j = 0; j < columns; ++j){
				a[i][j] = cin.nextDouble();
			}
		}
		int[] result = new int[2];
		result = locateLargest(a);
		System.out.println("(" + result[0] + "," + result[1] + ")");
	}
	
	public static int[] locateLargest(double[][] a){
		int[] result = new int[2];
		double max = 0;
		for(int i = 0; i < a.length; ++i){
			for(int j = 0; j < a[i].length; ++j){
				if(a[i][j] > max){
					max = a[i][j];
					result[0] = i;
					result[1] = j;
				}
			}
		}
		return result;
	}
}

14

import java.util.Scanner;
//对角线不写了
public class Main{
	
	public static void main(String args[]){
		Scanner cin = new Scanner(System.in);
		int size = cin.nextInt();
		int[][] matrix = new int[size][size];
		for(int i = 0; i < size; ++i){
			for(int j = 0; j < size; ++j){
				matrix[i][j] = (((int)System.currentTimeMillis())/(i+j+1))%2;
			}
		}

		for(int i = 0; i < size; ++i){
			for(int j = 0; j < size; ++j){
				System.out.print(matrix[i][j] + " ");
			}
			System.out.println();
		}
		
		int flag = 0;
		int count = 0;
		for(int i = 0; i < size; ++i){
			flag = 0;
			for(int j = 0; j < size; ++j){
				if(matrix[i][j] == 1)
					++flag;
				else if(matrix[i][j] == -1)
					--flag;
			}
			if(flag == size){
				System.out.println("All 1s on row " + i);
				++count;
			}
			else if(flag == -size){
				System.out.println("All 0s on row " + i);
				++count;
			}
		}
		if(count == 0)
			System.out.println("no same numbers on a row");
		count = 0;
		for(int j = 0; j < size; ++j){
			flag = 0;
			for(int i = 0; i < size; ++i){
				if(matrix[i][j] == 1)
					++flag;
				else if(matrix[i][j] == 0)
					--flag;
			}
			if(flag == size){
				System.out.println("All 1s on column " + j);
				++count;
			}
			else if(flag == -size){
				System.out.println("All 1s on column " + j);
				++count;
			}
		}
		if(count == 0)
			System.out.println("no same numbers on a column");
	}
}

15

。。。。。。

16

import java.util.Scanner;
//写完发现要求和书上写的不一样,不过去掉selectSort函数就和书上一样了
public class Main{
	
	public static void main(String args[]){
		Scanner cin = new Scanner(System.in);
		int[][] arr = new int[6][2];
		for(int i = 0; i < 6; ++i){
			arr[i][0] = cin.nextInt();
			arr[i][1] = cin.nextInt();
		}
		
		sort(arr);
		
		for(int i = 0; i < 6; ++i){
			System.out.println(arr[i][0] +  " " + arr[i][1]);
		}
	}
	
	public static void sort(int m[][]){
		for(int i = 0; i < (int)m.length; ++i){
			selectSort(m[i]);
		}
		
		int[] temp = null;
		for(int i = 0; i < (int)m.length - 1; ++i){
			for(int j = i+1; j < (int)m.length; ++j){
				if(compareInt(m[i],m[j]) > 0){
					temp = m[i];
					m[i] = m[j];
					m[j] = temp;
				}
			}
		}
	}
	
	public static int compareInt(int[] a, int[] b){
		int len = a.length < b.length ? a.length : b.length;
		for(int i = 0; i < len; ++i){
			if(a[i] > b[i])
				return 1;
			else if(a[i] < b[i])
				return -1;
		}
		if(a.length > b.length)
			return 1;
		else if(a.length < b.length)
			return -1;
		else
			return 0;
	}
	
	public static void selectSort(int arr[]){
		for(int i = 0; i < (int)arr.length - 1; ++i){
			for(int j = i+1; j < (int)arr.length; ++j){
				if(arr[i] > arr[j]){
					int temp = arr[i];
					arr[i] = arr[j];
					arr[j] = temp;
				}
			}
		}
	}
}

17

import java.util.Scanner;
import java.util.Arrays;

public class Main {

	public static void main(String[] args) {
		Scanner cin = new Scanner(System.in);
		int n = cin.nextInt();
		double limit = cin.nextDouble();
		double[][] borrower = new double[n][n];
		double[] balance = new double[n];
		double[] total = new double[n];
		boolean[] mark = new boolean[n];
		
		for(int i = 0; i < n; ++i) Arrays.fill(borrower[i], 0.0);
		//输入数据
		for(int i = 0; i < n; ++i){
			balance[i] = cin.nextDouble();
			int cnt = cin.nextInt();
			for(int j = 0; j < cnt; ++j){
				int index = cin.nextInt();
				borrower[i][index] = cin.nextDouble();
			}
		}
		//假设都没放贷款的总资产
		for(int i = 0; i < n; ++i){
			total[i] = balance[i];
			for(int j = 0; j < n; ++j){
				total[i] += borrower[i][j];
			}
		}
		Arrays.fill(mark,true);
		for(int i = 0; i < n; ++i){
			if(total[i] < limit && mark[i]){
				//把危险的借贷都剪掉
				mark[i] = false;
				for(int j = 0; j < n; ++j){
					borrower[j][i] = 0;
				}
				//重新计算总资产
				for(int v = 0; v < n; ++v){
					total[v] = balance[v];
					for(int j = 0; j < n; ++j){
						total[v] += borrower[v][j];
					}
				}
				//从头开始检查
				i = -1;
			}
		}
		
		for(int i = 0; i < n; ++i)
			if(!mark[i])
				System.out.print(i + " ");
	}
}


18

import java.util.Scanner;

public class Main{
	
	public static void main(String args[]){
		int[][] m = {{1,2},{3,4},{5,6},{7,8},{9,10}};
		shuffle(m);
		for(int i = 0; i < m.length; ++i){
			for(int j = 0; j < m[i].length; ++j){
				System.out.print(m[i][j] + " ");
			}
			System.out.println();
		}
	}
	
	public static void shuffle(int[][] m){
		int xlen = m.length;
		int ylen = m[0].length;
		for(int i = 0; i < xlen; ++i){
			for(int j = 0; j < ylen; ++j){
				int n = (int)(Math.random()*ylen);
				int temp = m[i][n];
				m[i][n] = m[i][j];
				m[i][j] = temp;
			}
		}
	}
}

19

import java.util.Scanner;

public class Main{
	
	public static void main(String args[]){
		Scanner cin = new Scanner(System.in);
		int[][] m = new int[5][5];
		for(int i = 0; i < 5; ++i){
			for(int j = 0; j < 5; ++j){
				m[i][j] = cin.nextInt();
			}
		}
		System.out.println(isConsecutiveFour(m));
	}
	
	public static boolean isConsecutiveFour(int[][] values){
		//行
		int count = 0;
		for(int i = 0; i < (int)values.length; ++i){
			count = 1;
			for(int j = 1; j < (int)values[i].length; ++j){
				if(values[i][j] == values[i][j-1])
					++count;
				else
					count = 1;
				if(count == 4){
					return true;
				}
			}
		}
		//列
		count = 0;
		int len = (int)values.length;
		for(int i = 0; i < len; ++i){
			count = 1;
			for(int j = 1; j < len; ++j){
				if(values[j][i] == values[j-1][i])
					++count;
				else
					count = 1;
				if(count == 4){
					return true;
				}
			}
		}
		//对角线
		for(int i = 1; i < len; ++i){
			count = 1;
			for(int j = 1; j < len-1; ++j){
				if(values[i][j] == values[i-1][j-1])
					++count;
				else
					count = 1;
				if(count == 4)
					return true;
			}
		}
		
		for(int i = 1; i < len; ++i){
			count = 1;
			for(int j = len-1-1; j >= 0; --j){
				if(values[i][j] == values[i-1][j+1])
					++count;
				else
					count = 1;
				if(count == 4)
					return true;
			}
		}
		return false;
	}
}

20

。。。。。。。

21

import java.util.Scanner;

public class Main{
	
	public static void main(String args[]){
		Scanner cin = new Scanner(System.in);
		System.out.print("Enter the number of cities:");
		int num = cin.nextInt();
		double[][] coordinate = new double[num][2];
		
		for(int i = 0; i < num; ++i){
			coordinate[i][0] = cin.nextDouble();
			coordinate[i][1] = cin.nextDouble();
		}
		
		double distance = 0;
		double sumDis = 0;
		double minSum = 999999999999.0;
		double x = 0,y = 0;
		for(int i = 0; i < num; ++i){
			sumDis = 0;
			for(int j = 0; j < num; ++j){
				distance = Math.sqrt(Math.pow(coordinate[i][0]-coordinate[j][0], 2) 
						+ Math.pow(coordinate[i][1]-coordinate[j][1], 2));
				sumDis += distance;
			}
			if(sumDis < minSum){
				minSum = sumDis;
				x = coordinate[i][0];
				y = coordinate[i][1];
			}
		}
		System.out.println("(" + x + "," + y + ")\n" + minSum);
	}
}

22

。。。。。。

23

import java.util.Scanner;

public class Main{
	
	public static void main(String args[]){
		Scanner cin = new Scanner(System.in);
		System.out.println("Enter a 6-by-6 matrix row by row:");
		int[][] matrix = new int[6][6];
		for(int i = 0; i < 6; ++i){
			for(int j = 0; j < 6; ++j){
				matrix[i][j] = cin.nextInt();
			}
		}
		//row
		int[][] coor1 = new int[6][2];
		int[][] coor2 = new int[6][2];
		int count = 0;
		for(int i = 0; i < 6; ++i){
			count = 0;
			for(int j = 0; j < 6; ++j){
				if(matrix[i][j] == 1)
					++count;
			}
			
			if(count%2 == 1){
				for(int j = 0; j < 6; ++j){
					coor1[j][0] = i;
					coor1[j][1] = j;
				}
				break;
			}
		}
		//column
		for(int i = 0; i < 6; ++i){
			count = 0;
			for(int j = 0; j < 6; ++j){
				if(matrix[j][i] == 1)
					++count;
			}
			
			if(count%2 == 1){
				for(int j = 0; j < 6; ++j){
					coor2[j][0] = j;
					coor2[j][1] = i;
				}
				break;
			}
		}
		
		int flag = 0;
		int mark = 0;
		for(int i = 0; i < 6; ++i){
			for(int j = 0; j < 6; ++j){
				if(coor1[i][0] == coor2[j][0] && coor1[i][1] == coor2[j][1]){
					flag = 1;
					mark = i;
					break;
				}
			}
			if(flag == 1)
				break;
		}
		if(flag == 1){
			System.out.println(coor1[mark][0] + "," + coor1[mark][1]);
		}
		
	}
}

24

package yongheng;
import java.util.Scanner;
import java.util.Arrays;

public class Main {

	public static void main(String[] args) {
		int staSum = 45;
		int[][] matrix = new int[9][9];
		Scanner cin = new Scanner(System.in);
		int sum = 0;
		boolean flag = false;
		for(int i = 0; i < 9; ++i){
			sum = 0;
			for(int j = 0; j < 9; ++j){
				matrix[i][j] = cin.nextInt();
				sum += matrix[i][j];
			}
			if(sum != staSum)
				flag = true;
		}
		
		if(flag)
			System.out.println("invalid solution");
		else{
			for(int i = 0; i < 9; ++i){
				sum = 0;
				for(int j = 0; j < 9; ++j){
					sum += matrix[j][i];
				}
				if(sum != staSum){
					flag = true;
					break;
				}
			}
		}
		if(flag)
			System.out.println("invalid solution");
		else
			System.out.println("valid solution");
	}
}


25 26

。。。。。。


27

import java.util.Scanner;

public class Main{
	
	public static void main(String args[]){
		Scanner cin = new Scanner(System.in);
		System.out.println("Enter a 3-by-3 matrix row by row:");
		double[][] matrix = new double[3][3];
		for(int i = 0; i < 3; ++i){
			for(int j = 0; j < 3; ++j){
				matrix[i][j] = cin.nextDouble();
			}
		}
		
		matrix = sortColumns(matrix);
		
		for(int i = 0; i < 3; ++i){
			for(int j = 0; j < 3; ++j){
				System.out.print(matrix[i][j] + " ");
			}
			System.out.println();
		}
	}
	
	public static double[][] sortColumns(double[][] m){
		for(int i = 0; i < 3; ++i){
			for(int j = 0; j < 3; ++j){
				for(int v = j+1; v < 3; ++v){
					if(m[j][i] > m[v][i]){
						double temp = m[j][i];
						m[j][i] = m[v][i];
						m[v][i] = temp;
					}
				}
			}
		}
		return m;
	}
}

28
import java.util.Scanner;

public class Main{
	
	public static void main(String args[]){
		int[][] num1 = new int[3][3];
		int[][] num2 = new int[3][3];
		Scanner cin = new Scanner(System.in);
		System.out.print("Enter list1:");
		for(int i = 0; i < 3; ++i)
			for(int j = 0; j < 3; ++j){
				num1[i][j] = cin.nextInt();
			}
		
		System.out.print("Enter list2:");
		for(int i = 0; i < 3; ++i)
			for(int j = 0; j < 3; ++j){
				num2[i][j] = cin.nextInt();
			}
		
		boolean flag = true;
		for(int i = 0; i < 3; ++i){
			for(int j = 0; j < 3; ++j){
				if(num1[i][j] != num2[i][j]){
					flag = false;
					break;
				}
			}
		}

		System.out.println(flag);
	}
}

29

import java.util.Scanner;

public class Main{
	
	public static void main(String args[]){
		int[][] num1 = new int[3][3];
		int[][] num2 = new int[3][3];
		Scanner cin = new Scanner(System.in);
		System.out.print("Enter list1:");
		for(int i = 0; i < 3; ++i)
			for(int j = 0; j < 3; ++j){
				num1[i][j] = cin.nextInt();
			}
		
		System.out.print("Enter list2:");
		for(int i = 0; i < 3; ++i)
			for(int j = 0; j < 3; ++j){
				num2[i][j] = cin.nextInt();
			}
		
		System.out.println(equals(num1,num2));
	}
	
	public static boolean equals(int[][] m1, int[][] m2){
		int[] l1 = new int[9];
		int[] l2 = new int[9];
		
		int count = 0;
		for(int i = 0; i < 3; ++i){
			for(int j = 0; j < 3; ++j){
				l1[count] = m1[i][j];
				l2[count] = m2[i][j];
				++count;
			}
		}
		
		java.util.Arrays.sort(l1);
		java.util.Arrays.sort(l2);
		
		boolean flag = true;
		for(int i = 0; i < 9; ++i){
			if(l1[i] != l2[i]){
				flag = false;
				break;
			}
		}
		return flag;
	}
}

30 31 32 33

。。。。。

34

import java.util.Scanner;

public class Main{
	
	public static void main(String args[]){
		Scanner cin = new Scanner(System.in);
		System.out.println("Enter 6 points:");
		double[][] points = new double[6][2];
		
		for(int i = 0; i < 6; ++i){
			points[i][0] = cin.nextDouble();
			points[i][1] = cin.nextDouble();
		}
		
		double[] point = getRightmostLowestPoint(points);
		
		System.out.println(point[0] + "," + point[1]);
	}
	
	public static double[] getRightmostLowestPoint(double[][] points){
		double[][] sum = new double[6][3];
		for(int i = 0; i < 6; ++i){
			sum[i][0] = points[i][0];
			sum[i][1] = points[i][1];
			sum[i][2] = Math.abs(points[i][0]) + Math.abs(points[i][0]);
		}
		selectSort(sum);
		double[] result = sum[5];
		for(int i = 5; i >= 0; --i){
			if(sum[i][0] >= 0 && sum[i][1] <= 0){
				result = sum[i];
				break;
			}
		}
		return result;
		
	}
	
	public static void selectSort(double[][] num){
		for(int i = 0; i < 5; ++i){
			for(int j = i+1; j < 6; ++j){
				if(num[i][2] > num[j][2]){
					double[] temp = num[i];
					num[i] = num[j];
					num[j] = temp;
				}
			}
		}
	}
	
}

35

暴力枚举,虽然时间复杂度很高,但是这个题并没有时间限制。

//这是最大子矩阵
import java.util.Scanner;

public class Main
{
	public static void main(String args[]){
		Scanner cin = new Scanner(System.in);
		int n = cin.nextInt();
		int temp = 0;
		int[][] matrix = new int[n][n];
		for(int i = 0; i < n; ++i){
			for(int j = 0; j < n; ++j){
				temp = cin.nextInt();
				if(temp == 0)
					matrix[i][j] = -100;
				else
					matrix[i][j] = 1;
			}
		}
		int res = maxSubMatrix(n,matrix);
		System.out.println(res);
	}
	
    public static int maxSubArray(int n,int a[])
    {
        int b=0,sum=-10000000;
        for(int i=0;i0) b+=a[i];
            else b=a[i];
            if(b>sum) sum=b;
        }
        return sum;  
    }
     
    public static int maxSubMatrix(int n,int[][] array)
    {
        int i,j,k,max=0,sum=-100000000;
        int b[]=new int[101];
        for(i=0;isum)
           		{
               	    sum=max;
                }
           }
        }
        return sum;
    }
}

36

import java.util.Scanner;
import java.util.Arrays;

public class Main{
	
	public static void main(String args[]){
		System.out.print("Enter number n:");
		Scanner cin = new Scanner(System.in);
		int n = cin.nextInt();
		char[][] matrix = new char[n][n];
		
		String temp = null;
		for(int i = 0; i < n; ++i){
			for(int j = 0; j < n; ++j){
				temp = cin.next();
				matrix[i][j] = temp.charAt(0);
			}
		}
		int[] record = new int[n];
		Arrays.fill(record, 0);
		
		for(int i = 0; i < n; ++i){
			for(int j = 0; j < n; ++j){
				++record[(int)(matrix[i][j]-'A')];
			}
		}
		
		for(int i = 0; i < n; ++i){
			for(int j = 0; j < n; ++j){
				++record[(int)(matrix[j][i] - 'A')];
			}
		}
		boolean flag = true;
		for(int i = 0; i < n; ++i){
			if(record[i] != 2*n){
				flag = false;
			}
		}
		
		System.out.println(flag);
	}
}

37

。。。。。。。



你可能感兴趣的:(Java学习)