联系

package com.itheima;

import java.util.Scanner;

/*

* 需求:键盘录入一个月份,输出该月份对应的季节。

* 一年有四季

* 3,4,5 春季

* 6,7,8 夏季

* 9,10,11 秋季

* 12,1,2 冬季

*

* 分析:

* A:键盘录入一个月份,用Scanner实现

* B:判断该月份是几月,根据月份输出对应的季节

* if

* switch

*/

public class Test {

public static void main(String[] args) {

//键盘录入一个月份,用Scanner实现

Scanner sc = new Scanner(System.in);

//接收数据

System.out.println("请输入月份(1-12):");

int month = sc.nextInt();

/*

if(month>12 || month<1) {

System.out.println("你输入的月份有误");

}else if(month == 1) {

System.out.println("冬季");

}else if(month == 2) {

System.out.println("冬季");

}else if(month == 3) {

System.out.println("春季");

}else if(month == 4) {

System.out.println("春季");

}else if(month == 5) {

System.out.println("春季");

}else if(month == 6) {

System.out.println("夏季");

}else if(month == 7) {

System.out.println("夏季");

}else if(month == 8) {

System.out.println("夏季");

}else if(month == 9) {

System.out.println("秋季");

}else if(month == 10) {

System.out.println("秋季");

}else if(month == 11) {

System.out.println("秋季");

}else {

System.out.println("冬季");

}

*/

//目前我们已经实现了我们的需求

//但是我觉得代码稍微有些麻烦

//所以我想改进

//如何改进呢?能不能把相同季节的月份放到一起判断呢

//能

//month == 3 || month == 4 || month == 5

if((month == 1) || (month == 2) || (month == 12)) {

System.out.println("冬季");

}else if((month == 3) || (month == 4) || (month == 5)) {

System.out.println("春季");

}else if((month == 6) || (month == 7) || (month == 8)) {

System.out.println("夏季");

}else if((month == 9) || (month == 10) || (month == 11)) {

System.out.println("秋季");

}else {

System.out.println("你输入的月份有误");

}

}

}

switch(month) {

case 1:

case 2:

case 12:

System.out.println("冬季");

break;

case 3:

case 4:

case 5:

System.out.println("春季");

break;

case 6:

case 7:

case 8:

System.out.println("夏季");

break;

case 9:

case 10:

case 11:

System.out.println("秋季");

break;

default:

System.out.println("你输入的月份有误");

break;

}

}

}

package com.itheima;

/*

* 需求:打印5位数中的所有回文数。

* 什么是回文数呢?举例:12321是回文数,个位与万位相同,十位与千位相同。

*

* 分析:

* A:5位数告诉了我们数据的范围,用for循环实现

* B:拿到每一个5位数后,获取其个位,十位,千位,万位的数据

* 如何获取呢?假设x是一个5位数

* 个位:x%10

* 十位:x/10%10

* 千位:x/10/10/10%10

* 万位:x/10/10/10/10%10

* C:根据条件进行判断,把满足条件的数据输出即可

*/

public class Test3 {

public static void main(String[] args) {

//5位数告诉了我们数据的范围,用for循环实现

for(int x=10000; x<100000; x++) {

//拿到每一个5位数后,获取其个位,十位,千位,万位的数据

int ge = x%10;

int shi = x/10%10;

int qian = x/10/10/10%10;

int wan = x/10/10/10/10%10;

//根据条件进行判断,把满足条件的数据输出即可

if((ge == wan) && (shi == qian)) {

System.out.println(x);

}

}

}

}

* 需求:

* 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,

* 假如兔子都不死,问第二十个月的兔子对数为多少?

*

* 规律:

* 第一个月:1

* 第二个月:1

* 第三个月:2

* 第四个月:3

* 第五个月:5

* ...

*

* 规律:从第三个月开始,每个月的兔子对数是前两个月的兔子对数之和

*          第一个月和第二个月的兔子对数都是1

*

* 分析:

* A:由于数据比较多,所以我们就定义数组来实现了

* int[] arr = new int[20];

* B:给数组的元素赋值

* arr[0] = 1

* arr[1] = 2

* C:找规律

* arr[2] = arr[1] + arr[0];

* arr[3] = arr[2] + arr[1];

* arr[4] = arr[3] + arr[2];

* arr[5] = arr[4] + arr[3];

* ...

*/

public class Test4 {

public static void main(String[] args) {

//定义数组

int[] arr = new int[20];

//给数组的元素赋值

arr[0] = 1;

arr[1] = 1;

//找规律赋值

for(int x=2; x

arr[x]=arr[x-2]+arr[x-1]

syso


你可能感兴趣的:(联系)