首页 > 代码库 > 不同类型问题代码训练

不同类型问题代码训练

键盘录入月份, 输出对应的季节
case的穿透:
实质就是case语句体中 没有break
如果没有break会直接进入下一个case的语句体 继续执行,直到有break才会跳出

 1 public static void main(String[] args) {
 2         // TODO Auto-generated method stub
 3         //使用Scanner获取键盘录入 
 4         Scanner sc = new Scanner(System.in);
 5         System.out.println("请输入数字");
 6         int num = sc.nextInt();
 7         
 8         switch (num) {
 9         case 1:
10         case 2:
11         case 12:
12             System.out.println("冬季");
13             break;
14         case 3:
15         case 4:
16         case 5:
17             System.out.println("c季");
18             break;
19         case 6:
20         case 7:
21         case 8:
22             System.out.println("夏季");
23             break;
24         case 9:
25         case 10:
26         case 11:
27             System.out.println("秋季");
28             break;
29 
30         default:
31             System.out.println("呵呵呵 ");
32             break;
33         }
34     }

打印 5 位数中所有的回文数
范围: 10000 ~ 100000
条件: 个位 == 万位 && 十位 == 千位

 1 public static void main(String[] args) {
 2         
 3         for(int i = 10000; i < 100000; i++){
 4             //求各个位 
 5                 int g = i%10;
 6                 int s = i/10%10;
 7                 //int b = i/10/10%10;
 8                 int q = i/10/10/10%10;
 9                 int w = i/10/10/10/10%10;
10             //条件判断 
11             if(g == w && s == q){
12                 System.out.println(i);
13             }
14         }
15 
16     }

数组元素交换
原数组 int[] arr = {10,20,30,40,50};
输出 arr={ 50, 40, 30, 20, 10};

思路:
定义两个变量 i j分别代表前面和后面元素的索引值
在i<j的情况下 反复交换元素 和 移动索引值

 1  public static void main(String[] args) {
 2         // TODO Auto-generated method stub
 3         int[] arr = {10,20,30,40,50};
 4         //定义两个变量 i j 
 5         int i = 0;
 6         int j = arr.length-1;
 7         //在 i< j的情况下反复交换和移动ij 
 8         while(i<j){
 9             //交换
10             int tmp = arr[j]; // 把后面元素的值 存放到临时变量中
11             arr[j] = arr[i];  //把前面元素值 赋值给后面元素 
12             arr[i] = tmp; // 把临时变量中存放的 原后面元素的值 赋值给前面的元素 
13             
14             //移动索引值 
15             i++;
16             j--;
17         }

斐波那契
有一对兔子, 从出生后第 3 个月起每个月都生一对兔子, 小兔子长到第三个月后每个月
又生一对兔子, 假如兔子都不死, 问第二十个月的兔子对数为多少?

 1 public static void main(String[] args) {
 2         // TODO Auto-generated method stub
 3         int[] arr = new int[20];
 4         
 5         arr[0] = 1;
 6         arr[1] = 1;
 7         
 8         for(int i = 2;i<arr.length;i++){
 9             arr[i] = arr[i-1] + arr[i-2];
10         }
11         
12         System.out.println("最终的兔子数: "+arr[19]);
13     }

 

不同类型问题代码训练