//MouseRunMase
package com.student.WeekThree;
import java.util.Scanner;
public class MouseRunMase {
public static void main(String [] args){
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt(),m = scanner.nextInt();
int [][]array = new int[n][m];
for(int i = 0;i < n;i++){
for(int j = 0;j < m;j++){
array[i][j] = 0;
}
}
for(int i = 0;i < m;i++){
array[0][i] = 1;
array[n-1][i] = 1;
}
for(int i = 0;i < n;i++){
array[i][0] = 1;
array[i][m - 1] = 1;
}
array[3][1] = 1;
array[3][2] = 1; //0是无障碍物 1有障碍物 2走得通 3走过但走不通
System.out.println("原图");
for(int i = 0;i < n;i++){
for(int j = 0;j < m;j++){
System.out.print(array[i][j] + " ");
}
System.out.println();
}
Seek(1,1,array,n,m);
System.out.println("_______________________________\n新图");
for(int i = 0;i < n;i++){
for(int j = 0;j < m;j++){
System.out.print(array[i][j] + " ");
}
System.out.println();
}
}
public static boolean Seek(int i,int j,int [][]array,int n,int m){
if(array[n - 2][m - 2] == 2){ //当最后一行最后一列为2时代表成功走出迷宫
return true;
} else if(array[i][j] == 0){ //如果为0代表无障碍物,那么就要判断是否走得通
array[i][j] = 2;
if(Seek(i + 1,j,array,n,m)){ //下
return true;
}else if(Seek(i,j + 1,array,n,m)){ //右
return true;
}else if(Seek(i - 1,j,array,n,m)){ //上
return true;
}else if(Seek(i,j - 1,array,n,m)){ //左
return true;
}else{ //如果都走不通就标记为3表示走过但走不通
array[i][j] = 3;
return false;
}
}else{
return false;
}
}
}
//HanNuoTower
package com.student.WeekThree;
import java.util.Scanner;
public class HanNuoTower {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
hanoi('A','B','C',num);
}
public static void hanoi(char A,char B,char C,int num){
if(num == 1){ //不管有多少个盘子,都看成两个————最下面的一个盘子和其他盘子
System.out.println(A + "->" + C); //如果只有一个盘子直接输出把它从初始位置移动到目标位置
}
else{
hanoi(A,C,B,num - 1); //把其余盘子从初始位置 通过桥梁位置 移动到目标位置
System.out.println(A + "->" + C); //此时初始位置上只剩下一个盘子,直接输出把它移动到目标位置
hanoi(B,A,C,num - 1); //把其余盘子从初始位置 通过桥梁位置 移动到目标位置
}
}
}
//VaraParameter
package com.student.WeekThree;
public class VaraParameter {
public static void main(String[] args){
Persono persono = new Persono();
int array[] = {1,3,5,7,9};
int array1[] = {2,4,6,8,10};
System.out.println(sum1(1,2,3,4,5));
System.out.println(sum2(array)); //可变参数的实参可以为数组,但只能有一个数组
System.out.println(sum3(100,100,"笨笨熊",array1)); //可变参数的实参可为0个或任意多个
persono = figure(persono,60,80);
System.out.println(persono.name + persono.sum);
}
public static int sum1(int ...nums){
int ans = 0;
for(int i = 0;i < nums.length;i++){
ans += nums[i];
}
return ans;
}
public static int sum2(int ...nums){
int ans = 0;
for(int i = 0;i < nums.length;i++){
ans += nums[i];
}
return ans;
}
public static int sum3(int num1,int num2,String name,int ...nums){//可变参数可以和普通参数一起放在形参列表,但可变参数必须放在最后
int ans = 0;
for(int i = 0;i < nums.length;i++){
ans += nums[i];
}
ans += num1 + num2;
System.out.println(name);
return ans;
}
public static Persono figure(Persono persono,int ...score){
int ans = 0;
for(int i = 0;i < score.length;i++){
ans += score[i];
}
persono.name = "笨笨熊";
persono.sum = ans;
return persono;
}
}
class Persono{
int sum;
String name;
}
题目 java
于 2024-03-22 00:19:32 首次发布