题目 java

//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;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值