import java.util.Scanner;
public class lian7_1 {
public static void main(String[] args) {
double[][] matrix=new double[3][4];
Scanner scanner=new Scanner(System.in);
System.out.println("Enter a 3-by-4 matrix row by row:");
for(int i=0;i<matrix.length;i++){
for(int j=0;j<matrix[i].length;j++){
matrix[i][j]=scanner.nextDouble();
}
}
for(int j=1;j<=4;j++){
System.out.println(sumcol(matrix,j));
}
}
private static double sumcol(double[][] matrix, int col) {
double sum=0;
for(int i=0;i<matrix.length;i++){
sum+=matrix[i][col-1];
}
return sum;
}
}
import java.util.Scanner;
public class lian7_2 {
public static void main(String[] args) {
double[][] matrix=new double[4][4];
Scanner scanner=new Scanner(System.in);
System.out.println("Enter matrix:");
for(int i=0;i<matrix.length;i++){
for(int j=0;j<matrix[i].length;j++){
matrix[i][j]=scanner.nextDouble();
}
}
double sum1=mainSum1(matrix);
double sum2=mainSum2(matrix);
System.out.println(sum1);
System.out.println(sum2);
}
private static double mainSum2(double[][] matrix) {
double sum=0;
for(int i=0;i<matrix.length;i++){
int col=matrix.length-1-i;
sum+=matrix[i][col];
}
return sum;
}
private static double mainSum1(double[][] matrix) {
double sum=0;
for(int i=0;i<matrix.length;i++){
int col=i;
sum+=matrix[i][col];
}
return sum;
}
}
import java.util.Arrays;
public class lian7_3 {
public static void main(String[] args) {
int[] workTimes=new int[8];
String[] names=new String[8];
int[][] times=new int[8][7];
for(int i=0;i<names.length;i++){
names[i]="Employee"+i;
}
for(int i=0;i<times.length;i++){
for(int j=0;j<times[i].length;j++){
times[i][j]=(int)(Math.random()*9+1);
}
}
print(names,times,workTimes);
for(int i=0;i<workTimes.length;i++){
workTimes[i]=getSum(times[i]);
}
for(int i=0;i<workTimes.length-1;i++){
for(int j=i+1;j<workTimes.length;j++){
if(workTimes[i]<workTimes[j]){
changeWorkTimes(workTimes,i,j);
changeTimes(times,i,j);
changeNames(names,i,j);
}
}
}
print(names,times,workTimes);
}
private static void print(String[] names, int[][] times, int[] workTimes) {
for(int i=0;i<names.length;i++){
System.out.println(names[i]+Arrays.toString(times[i])+"==>"+workTimes[i]);
}
}
private static void changeTimes(int[][] times, int i, int j) {
int[] temp=times[i];
times[i]=times[j];
times[j]=temp;
}
private static void changeNames(String[] names, int i, int j) {
String temp=names[i];
names[i]=names[j];
names[j]=temp;
}
private static void changeWorkTimes(int[] workTimes, int i, int j) {
int temp=workTimes[i];
workTimes[i]=workTimes[j];
workTimes[j]=temp;
}
private static int getSum(int[] time) {
int sum=0;
for(int i=0;i<time.length;i++){
sum+=time[i];
}
return sum;
}
}
import java.util.Scanner;
public class lian7_4 {
public static void main(String[] args) {
int[][] ma=new int[3][3];
int[][] mb=new int[3][3];
int[][] mc=new int[3][3];
Scanner scanner=new Scanner(System.in);
System.out.print("Enter ma:");
for(int i=0;i<ma.length;i++){
for(int j=0;j<ma[i].length;j++){
ma[i][j]=scanner.nextInt();
}
}
System.out.print("Enter mb:");
for(int i=0;i<mb.length;i++){
for(int j=0;j<mb[i].length;j++){
mb[i][j]=scanner.nextInt();
}
}
mc=addMatrix(ma,mb);
print(ma,mb,mc);
}
private static void print(int[][] ma, int[][] mb, int[][] mc) {
for(int i=0;i<ma.length;i++){
if(i!=ma.length/2){
System.out.printf("|%d %d %d| |%d %d %d| |%d %d %d|\n",ma[i][0],ma[i][1],ma[i][2],mb[i][0],mb[i][1],mb[i][2],mc[i][0],mc[i][1],mc[i][2]);
}else{
System.out.printf("|%d %d %d| + |%d %d %d| = |%d %d %d|\n",ma[i][0],ma[i][1],ma[i][2],mb[i][0],mb[i][1],mb[i][2],mc[i][0],mc[i][1],mc[i][2]);
}
}
}
private static int[][] addMatrix(int[][] ma, int[][] mb) {
if(ma==null||ma==null){
return null;
}
if(ma.length==0||mb.length==0){
return null;
}
if(ma.length!=mb.length||ma[0].length!=mb[0].length){
return null;
}
int[][] mc=new int[ma.length][ma[0].length];
for(int i=0;i<ma.length;i++){
for(int j=0;j<ma[i].length;j++){
mc[i][j]=ma[i][j]+mb[i][j];
}
}
return mc;
}
}
import java.util.Arrays;
public class lian7_5 {
public static void main(String[] args) {
int[][] ma=new int[4][4];
int[][] mb=new int[4][4];
int[][] mc=new int[4][4];
for(int i=0;i<ma.length;i++){
for(int j=0;j<ma[i].length;j++){
ma[i][j]=(int)(Math.random()*9+1);
}
}
for(int i=0;i<mb.length;i++){
for(int j=0;j<mb[i].length;j++){
mb[i][j]=(int)(Math.random()*9+1);
}
}
mc=multiplyMatrix(ma, mb);
for(int i=0;i<mc.length;i++){
System.out.println(Arrays.toString(mc[i]));
}
}
public static int[][] multiplyMatrix(int[][] ma,int[][] mb){
int[][] mc=new int[4][4];
for(int i=0;i<mc.length;i++){
for(int j=0;j<mc[0].length;j++){
mc[i][j]=getSum(ma,mb,i,j,ma[0].length);
}
}
return mc;
}
private static int getSum(int[][] ma, int[][] mb, int i, int j, int p) {
int sum=0;
for(int k=0;k<p;k++){
sum+=ma[i][k]*mb[k][j];
}
return sum;
}
}
import java.util.Arrays;
public class lian7_6 {
public static void main(String[] args) {
double[][] points=new double[][]{
{-1,0,3},
{-1,-1,-1},
{4,1,1},
{2,0.5,9},
{3.5,2,-1},
{3,1.5,3},
{-1.5,4,2},
{5.5,4,-0.5}
};
//找到两个距离最近的点存在point中
double[][] aimPoint=new double[][]{
{0,0,0},
{0,0,0}
};
//选择比较
double minDistance=0;
for(int i=0;i<points.length;i++){
for(int j=i+1;j<points[i].length;j++){
double Distance=getDistance(points[i],points[j]);
if(i==0&&j==i+1){
minDistance=Distance;
aimPoint[0]=points[i];
aimPoint[1]=points[j];
}else{
if(minDistance>Distance){
minDistance=Distance;
aimPoint[0]=points[i];
aimPoint[1]=points[j];
}
}
}
}
System.out.println(minDistance);
System.out.println(Arrays.toString(aimPoint[0]));
System.out.println(Arrays.toString(aimPoint[1]));
}
private static double getDistance(double[] p1, double[] p2) {
double deltx=p1[0]-p2[0];
double delty=p1[1]-p2[1];
double deltz=p1[2]-p2[2];
return Math.sqrt(Math.pow(deltx, 2)+Math.pow(delty, 2)+Math.pow(deltz, 2));
}
}
7.7 n子棋
import java.util.Scanner;
public class lian7_7 {
public static String[][] board=null;
public static int mode=0;
public static final String BALCK_CHESS="●";
public static final String WHITE_CHESS="○";
private static final Object BLACK_CHESS = null;
public static int play;
public static void main(String[] args) {
initGame();
startGame();
}
private static void startGame() {
play=0;
while(isGameContinue()){
showBoard();
if(play%2==0){
System.out.println(">>>请黑方下棋:");
if(!dropChess(BALCK_CHESS)){
continue;
}
}else{
System.out.println(">>>请白方下棋:");
if(!dropChess(WHITE_CHESS)){
continue;
}
}
play++;
}
}
private static boolean dropChess(String chess) {
Scanner scanner=new Scanner(System.in);
System.out.print(">>>请输入x:");
int x=scanner.nextInt();
System.out.print(">>>请输入y:");
int y=scanner.nextInt();
if(x<1||x>(mode-2)*mode||y<1||y>(mode-2)*mode){
System.out.println("无此坐标");
return false;
}
if(!board[x-1][y-1].equals("+")){
System.out.println("已有棋!");
return false;
}
board[x-1][y-1]=chess;
return true;
}
private static boolean isGameContinue() {
for(int i=0;i<board.length;i++){
for(int j=0;j<board[i].length;j++){
if(!board[i][j].equals("+")){
//右
if(j<=(mode-3)*mode){
boolean flag=true;//连续相等
for(int y=1;y<=mode-1;y++){
if(!board[i][j].equals(board[i][j+y])){
flag=false;
break;
}
}
if(flag){
showBoard();
if(board[i][j].equals(BLACK_CHESS)){
System.out.println(">>>黑方胜!!!");
}else{
System.out.println(">>>白方胜!!!");
}
return false;//游戏不继续
}
}
//下
if(i<=(mode-3)*mode){
boolean flag=true;
for(int x=1;x<=mode-1;x++){
if(!board[i][j].equals(board[i+x][j])){
flag=false;
break;
}
}
if(flag){
showBoard();
if(board[i][j].equals(BLACK_CHESS)){
System.out.println(">>>黑方胜!!!");
}else{
System.out.println(">>>白方胜!!!");
}
return false;
}
}
//右下
if(i<=(mode-3)*mode&&j<=(mode-3)*mode){
boolean flag=true;
for(int x=1,y=1;x<=mode-1&&y<=mode-1;x++,y++){
if(!board[i][j].equals(board[i+x][j+y])){
flag=false;
break;
}
}
if(flag){
showBoard();
if(board[i][j].equals(BALCK_CHESS)){
System.out.println(">>>黑方胜!!!");
}else{
System.out.println(">>>白方胜!!!");
}
return false;
}
}
//右上
if(i>=mode-1&&j<=(mode-3)*mode){
boolean flag=true;
for(int x=1,y=1;x<=mode-1&&y<=mode-1;x++,y++){
if(!board[i][j].equals(board[i-x][j+y])){
flag=false;
break;
}
}
if(flag){
showBoard();
if(board[i][j].equals(BALCK_CHESS)){
System.out.println(">>>黑方胜!!!");
}else{
System.out.println(">>>白方胜!!!");
}
return false;
}
}
}
//判断和棋
if(play==Math.pow((mode-2)*mode, 2)){
showBoard();
System.out.println(">>>和棋!!!!");
return false;
}
}
}
return true;
}
private static void showBoard() {
for(int i=0;i<board.length;i++){
for(int j=0;j<board[i].length;j++){
System.out.print(board[i][j]+" ");
}
System.out.println();
}
}
private static void initGame() {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入游戏模型:");
mode=scanner.nextInt();
board=new String[(mode-2)*mode][(mode-2)*mode];
for(int i=0;i<board.length;i++){
for(int j=0;j<board[i].length;j++){
board[i][j]="+";
}
}
}
}
public class lian7_8 {
public static void main(String[] args) {
//定义数组
int[][] matrix=new int[4][4];
//随机填充1或0
for(int i=0;i<matrix.length;i++){
for(int j=0;j<matrix[i].length;j++){
matrix[i][j]=(int)(Math.random()*2);
}
}
//打印
print(matrix);
//找到1最多的某行
int rowIndex=findLargestRow(matrix);
//找到1最多的某列
int colIndex=findLargestCol(matrix);
System.out.println("The largest row is "+(rowIndex+1));
System.out.println("The largest col is "+(colIndex+1));
}
public static void print(int[][] matrix) {
for(int i=0;i<matrix.length;i++){
// System.out.println(Arrays.toString(matrix[i]));
for(int j=0;j<matrix[i].length;j++){
System.out.print(matrix[i][j]+" ");
}
System.out.println();
}
}
private static int findLargestCol(int[][] matrix){
int maxCount=0;
int colIndex=0;
for(int j=0;j<matrix[0].length;j++){
int count=0;
for(int i=0;i<matrix.length;i++){
if(matrix[i][j]==1){
count++;
}
}
if(count>maxCount){
maxCount=count;
colIndex=j;
}
}
return colIndex;
}
private static int findLargestRow(int[][] matrix){
int maxCount=0;
int rowIndex=0;
for (int i=0;i<matrix.length;i++){
int count=0;
for (int j=0;j<matrix[i].length;j++){
if(matrix[i][j]==1){
count++;
}
}
if(count>maxCount){
maxCount=count;
rowIndex=i;
}
}
return rowIndex;
}
}
7.9
import java.util.Scanner;
public class lian7_9 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.print("Enter the number between 0 and 511:");
int num=scanner.nextInt();
int[][] matrix=new int[3][3];
for(int i=matrix.length-1;i>=0;i--){
for(int j=matrix[i].length-1;j>=0;j--){
if(num!=0){
matrix[i][j]=num%2;
num/=2;
}else{
break;
}
}
}
paint(matrix);
}
private static void paint(int[][] matrix) {
for(int i=0;i<matrix.length;i++){
for(int j=0;j<matrix[i].length;j++){
System.out.print(matrix[i][j]==0?"H":"T");
}
System.out.println();
}
}
}
import java.util.Arrays;
import java.util.Scanner;
public class lian7_10 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("Enter the number of rows and colums of the array:");
int row=scanner.nextInt();
int col=scanner.nextInt();
double[][] matrix=new double[row][col];
System.out.println("Enter the Array:");
for(int i=0;i<matrix.length;i++){
for(int j=0;j<matrix[i].length;j++){
matrix[i][j]=scanner.nextDouble();
}
}
int[] zuobiao=locateLargest(matrix);
System.out.println(Arrays.toString(zuobiao));
}
public static int[] locateLargest(double[][] m){
int[] zuobiao=new int[2];
double max=0;
for(int i=0;i<m.length;i++){
for(int j=0;j<m[i].length;j++){
if(m[i][j]>max){
max=m[i][j];
zuobiao[0]=i;
zuobiao[1]=j;
}
}
}
return zuobiao;
}
}