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