A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

五月的蛇皮

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© 五月的蛇皮 初级黑马   /  2018-4-17 23:06  /  1116 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

初级java中经典案例
一.水仙花数
package com.itheima_04;
/*
* 需求:在控制台输出所有的”水仙花数”
*
* 分析:
*                 什么是水仙花数呢?
*                         所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
*                        举例:153就是一个水仙花数。
*                        153 = 1*1*1 + 5*5*5 + 3*3*3
*
*                A:三位数其实就告诉了我们水仙花数的范围
*                        100-999
*                B:如何获取一个数据的每一个位上的数呢?
*                        举例:我有一个数据153,请问如何获取到个位,十位,百位
*                        个位:153%10 = 3;
*                        十位:153/10%10 = 5;
*                        百位:153/10/10%10 = 1;
*                        千位:...
*                        万位:...
*                C:让每个位上的立方和相加,并和该数据进行比较,如果相等,就说明该数据是水仙花数,在控制台输出
*/
public class ForTest4 {
        public static void main(String[] args) {
                //通过循环获取到每一个三位数
                for(int x=100; x<1000; x++) {
                        //获取个位,十位,百位
                        int ge = x%10;
                        int shi = x/10%10;
                        int bai = x/10/10%10;
                       
                        //让每个位上的立方和相加,并和该数据进行比较,如果相等,就说明该数据是水仙花数,在控制台输出
                        if((ge*ge*ge+shi*shi*shi+bai*bai*bai) == x) {
                                System.out.println(x);
                        }
                }
        }
}

二.不死神兔
需求:
*                 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,
*                 假如兔子都不死,问第二十个月的兔子对数为多少?
*
* 规律:
*                 第一个月:1
*                 第二个月:1
*                 第三个月:2
*                 第四个月:3
*                 第五个月:5
*                 ...
*
*                 规律:从第三个月开始,每个月的兔子对数是前两个月的兔子对数之和。
*                         第一个月和第二个月的兔子对数是1
* 分析:
*                 int[] arr = new int[20];
*
*                 arr[0] = 1;
*                 arr[1] = 1;
*
*                 arr[2] = arr[0] + arr[1];
*                 arr[3] = arr[1] + arr[2];
*                 arr[4] = arr[2] + arr[3];
*                 ...
*/
public class Test4 {
        public static void main(String[] args) {
                //定义数组
                int[] arr = new int[20];
               
                //初始化第一个月和第二个月的兔子对数c
                arr[0] = 1;
                arr[1] = 1;
               
                for(int x=2; x<arr.length; x++) {
                        arr[x] = arr[x-2] + arr[x-1];
                }
               
                System.out.println("第二十个月的时候的兔子对数是:"+arr[19]);
        }
}
三.回文数
import java.util.Scanner;

public class Test13 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int num, temp;
int[] arr = new int[10];
int i, len;

num = scan.nextInt();
temp = num;
i = 0;
while(temp > 0){
arr[i++] = temp % 10;
temp /= 10;
}
len = i;

for(i=0; i<len/2; i++){
if(arr != arr[len-i-1]){
break;
}
}
if(i >= len/2){
System.out.println(num + " 是回文数");
}
else{
System.out.println(num + " 不是回文数");
}
}
}

1 个回复

正序浏览
厉害,水仙花
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马