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个月起每个月都生一对兔子, 小兔子长到第三个月后每个月又生一对兔子, 假如兔子都不死,问第二十个月的兔子对数为多少?
这是一个很经典的题型,下面我讲讲我的做题思路。
首先读题目发现,刚开始有一对小兔子,第一个月和第二个月都是一对,从第三个月开始每个月生一对,之后的每对兔子都是这样。我就先计算了一下前几个月的兔子数量,发现是这样的:
第一个月 | 第二个月 | 第三个月 | 第四个月 | 第五个月 | 第六个月 | 第七个月 |
1 | 1 | 2 | 3 | 5 | 8 | 13 |
这样就发现了规律,很明显从第三个月开始,当前月等于前两个月的兔子对数加起来。发现了这个规律就可以开始做题了。
定义一个数组用来存放每个月兔子的数量,数组长度为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]);
}
}