java之经典题型

1.通过键盘录入的方式输入星期数(1-7的整数),显示今天的减肥活动,使用switch和if两种判断语句分别完成。

            周一:跑步
​            周二:游泳
​            周三:慢走
​            周四:动感单车
​            周五:拳击
​            周六:爬山
​            周日:好好吃一顿

方法一:

 import java.util.Scanner;
public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入星期数:");
        int week=sc.nextInt();
        switch(week){
            case 1:
                System.out.println("跑步");
                break;
            case 2:
                System.out.println("游泳");
                break;
            case 3:
                System.out.println("慢走");
                break;
            case 4:
                System.out.println("动感单车");
                break;
            case 5:
                System.out.println("拳击");
                break;
            case 6:
                System.out.println("爬山");
                break;
            case 7:
                System.out.println("好好吃一顿");
                break;
            default:
                System.out.println("输入有误,重新输入!");
        }
    }

 首先通过导入的Scanner包,使用Scanner从键盘获取输入,定义一个变量week来存放输入,通过switch语句让week的值与case的值进行比对,如果比对成功,执行相应case后面的语句,break结束循环。如果week的值和case都不匹配,就执行default后面的语句。

方法二:

public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入星期数:");
        int week=sc.nextInt();
        if (week>=1&&week<=7){
            if (week==1){
                System.out.println("跑步");
            }else if(week==2){
                System.out.println("游泳");
            }else if(week==3){
                System.out.println("慢走");
            }else if(week==4){
                System.out.println("动感单车");
            }else if(week==5){
                System.out.println("拳击");
            }else if(week==6){
                System.out.println("爬山");
            }else {
                System.out.println("好好吃一顿");
            }
        }else{
            System.out.println("输入有误,请重新输入!");
        }
    }

同样的通过Scanner从键盘获取输入,定义一个变量week存放输入,使用选择结构的if语句来判断week的值是否满足if语句的表达式,匹配成功输出相应if里面的语句。如果week的值都不满足前面的if,那么就输出最后else里面的语句。

2.有一个很有名的数学逻辑题叫做不死神兔问题。有一对兔子,从出生后第3个月起每个月都生一对兔子, 小兔子长到第三个月后每个月又生一对兔子, 假如兔子都不死,问第二十个月的兔子对数为多少?

这是一个很经典的题型,下面我讲讲我的做题思路。

首先读题目发现,刚开始有一对小兔子,第一个月和第二个月都是一对,从第三个月开始每个月生一对,之后的每对兔子都是这样。我就先计算了一下前几个月的兔子数量,发现是这样的:

第一个月第二个月第三个月第四个月第五个月第六个月第七个月
11235813

这样就发现了规律,很明显从第三个月开始,当前月等于前两个月的兔子对数加起来。发现了这个规律就可以开始做题了。

定义一个数组用来存放每个月兔子的数量,数组长度为20.

直接给前两个数组赋值,用于存放第一和第二个月的兔子数量。

定义变量m和n,初始值就是前两个数组的下标。

使用for循环从第三个数组开始给后面的数组赋值。

表达式就是当前数组等于前两个数组之和,每运算一次,m和n的值也加1.

直到for循环全部结束,对数组的赋值也就完成了。

直接输出就可以得到想要的结果。

 public static void main(String[] args) {
        int x=0;
        getSum(x);
    }
    public static void getSum(int i){
        int[] arr=new int[20];
        arr[0]=1;
        arr[1]=1;
        int m=0;
        int n=1;
        for ( i = 0; i < arr.length; i++) {
            if (i>=2){
                arr[i]=arr[m]+arr[n];
                m++;
                n++;
            }
        }
        for ( i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值