java基础练习—逢七游戏、不死神兔、百钱百鸡、利滚利

Java基础练习

1.1 减肥计划if版本

1.1.1 案例需求
  • 输入星期数,显示今天的减肥活动 周一:跑步 周二:游泳 周三:慢走 周四:动感单车 周五:拳击 周六:爬山 周日:好好吃一顿
package com.bdit.day06;

import java.util.Scanner;

public class Exercise02 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入星期数:");
        int str = sc.nextInt();
        if( str == 1){
            System.out.println("周一:跑步");
        }else if( str == 2){
            System.out.println("周二:游泳");
        }else if( str == 3){
            System.out.println("周三:慢走");
        }else if( str == 4){
            System.out.println("周四:动感单车");
        }else if( str == 5){
            System.out.println("周五:拳击");
        }else if( str == 6){
            System.out.println("周六:爬山");
        }else if( str == 7){
            System.out.println("周日:好好吃一顿");
        } else {
            System.out.println("星期错误");
        }
    }
}

1.2 减肥计划 switch 版本

1.2.1 案例需求
  • 输入星期数,显示今天的减肥活动 周一:跑步 周二:游泳 周三:慢走 周四:动感单车 周五:拳击 周六:爬山 周日:好好吃一顿
package com.bdit.day06;

import java.util.Scanner;

public class Exercise01 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入星期数:");
        String str = sc.next();
        switch (str){
            case  "星期一":
            case"1":
                System.out.println("周一:跑步");
                break;
            case "星期二":
            case"2":
                System.out.println("周二:游泳");
                break;
            case "星期三":
            case"3":
                System.out.println("周三:慢走");
                break;
            case "星期四":
            case"4":
                System.out.println("周四:动感单车");
                break;
            case "星期五":
            case"5":
                System.out.println(" 周五:拳击");
                break;
            case "星期六":
            case"6":
                System.out.println(" 周六:爬山");
                break;
            case "星期七":
            case"7":
                System.out.println("周日:好好吃一顿");
                break;
            default:
                System.out.println("输入正确的星期数");
        }
    }
}

1.3逢七跳过

1.3.案例需求
  • 朋友聚会的时候可能会玩一个游戏:逢七过。 规则是:从任意一个数字开始报数,当你要报的数字包含7或者是7 的倍数时都要说:过。 为了帮助大家更好的玩这个游戏,这里我们直接在控制台打印出1-100之间的满足逢七必过 规则的数据。 这样,大家将来在玩游戏的时候,就知道哪些数据要说:过。
package com.bdit.day06;
//当你要报的数字包含7或者是7 的倍数时都要说过    个位  7
//为了帮助大家更好的玩这个游戏,这里我们直接在控制台打印出1-100之间的满足逢七必过 规则的数据。
public class Exercise03 {
    public static void main(String[] args) {

        for (int i = 0; i <= 100; i++) {
            if(i%7==0 || (i-7)%10==0){
                System.out.print(i+" ");
            }
        }
        System.out.println("----");


    }
}

1.4不死神兔

1.4.1案例需求
  • 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子, 假如兔子都 不死,问第二十个月的兔子对数为多少?
package com.bdit.day06;
//有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,
//        假如兔子都 不死,问第二十个月的兔子对数为多少?
public class Exercise04 {
    public static void main(String[] args) {
        //不死神兔
        //一、 1
        //二、 1
        //三、 2
        //四、 3
        //五、 5
        //六、 8
        //第三个月的对数是前两个月的和
        int[] a= new int[20];
        a[0] = 1;
        a[1] = 1;
        for (int i = 0; i < a.length; i++) {
            a[i] = a[i-1]+a[i-2];
        }
        System.out.println(a[19]);
    }
}

1.5百钱白鸡

1.5.1案例需求
  • 我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。 百钱 买百鸡,问鸡翁、鸡母、鸡雏各几何?
package com.bdit.day06;
//我国古代数学家张丘建在《算经》一书中提出的数学问题:
//鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。 百钱 买百鸡,问鸡翁、鸡母、鸡雏各几何
public class Exercise05 {
    public static void main(String[] args) {
        int mony =100;
        for (int jg = 0; jg <= mony/5; jg++) {//最大买的个数20
            for (int jm = 0; jm <= 33 ; jm++) {//最大买的个数33.33333
                int jc =100-(jg+jm);//百鸡
                if(jc%3==0 && (jg*5+jm*3+jc/3==100)){//整只小鸡和个数*价格=总钱数
                    System.out.println("鸡翁:"+jg+"鸡母"+jm+"鸡雏"+jc);
                }
            }
        }

    }
}

1.6数组元素求和

1.6.1案例需求
  • 有这样的一个数组,元素是{68,27,95,88,171,996,51,210}。求出该数组中满足要求的元素和, 要求是:求和的元 素个位和十位都不能是7,并且只能是偶数
package com.bdit.day06;
//有这样的一个数组,元素是{68,27,95,88,171,996,51,210}。
//求出该数组中满足要求的元素和, 要求是:求和的元 素个位和十位都不能是7,并且只能是偶数
public class Exercise06 {
    public static void main(String[] args) {
        int[] arr = {68,27,95,88,171,996,51,210};
        int all =0;
        for (int i = 0; i < arr.length; i++) {
            if ((arr[i]%2==0) && (arr[i]-7!=0) && (arr[i]/10%10!=7)){
                all+=arr[i];
                System.out.println(arr[i]);
            }
        }
        System.out.println("求和的元素个位和十位都不能是7,并且只能是偶数,合为"+all);

    }
}

1.7判断两个数组是否相同

1.7.1案例需求
  • 定义一个方法,用于比较两个数组的内容是否相同
package com.bdit.day06;//定义一个方法,用于比较两个数组的内容是否相同
public class Exercise07 {
	public static void main(String[] args) {
    int[] a = {1,5,3,9,100};
    int[] b = {1,5,3,9,10};
    System.out.println(xiang(a,b));
    }    
    public static boolean xiang(int aa[],int bb[]){
    if(aa.length != bb.length){
    return false;        
    }
    for (int i = 0; i < aa.length; i++) {
    if(aa[i] != bb[i]) {
    return false;
    }
    }
    return false;
    }
}

1.8 查找元素在数组中出现的索引位置

1.8.1案例需求
  • 已知一个数组 arr = {19, 28, 37, 46, 50}; 键盘录入一个数据,查找该数据在数组中的索引。 并在控制台输出找到的索引值。如果没有查找到,则输出-1
package com.bdit.day06;
//已知一个数组 arr = {19, 28, 37, 46, 50};键盘录入一个数据,
//查找该数据在数组中的索引。 并在控制台输出找到的索引值。如果没有查找到,则输出-1

import java.util.Scanner;

public class Exercise08 {
    public static void main(String[] args) {
        int[] arr={19, 28, 37, 46, 50};
        System.out.println(sy(arr));
    }

    public static int sy(int[] arr){
        Scanner sc =new Scanner(System.in);
        System.out.println("请输入一个数:");
        int in =sc.nextInt();
        int xb =-1;
        for (int i = 0; i < arr.length; i++) {
            if(in == arr[i]){
                xb = i;
                System.out.println("--"+xb);
                break;
            }
        }

        return xb;
    }
}

1.9数组元素反转

1.9.1案例需求
  • 已知一个数组 arr = {19, 28, 37, 46, 50}; 用程序实现把数组中的元素值交换, 交换后的数组 arr = {50, 46, 37, 28,19}; 并在控制台输出交换后的数组元素。
package com.bdit.day06;
//已知一个数组 arr = {19, 28, 37, 46, 50}; 用程序实现把数组中的元素值交换,
//交换后的数组 arr = {50, 46, 37, 28,19}; 并在控制台输出交换后的数组元素。

public class Exercise09{
    public static void main(String[] args) {
        int[]arr={19, 28, 37, 46, 50};
        int max= arr.length-1;//下标
        for (int i = 0; i <= max; i++) {
            int tempor = arr[i];//tempor = 数组的数      tempor = 19
            arr[i]=arr[max];  //数组的数 = arr[下标]      19 = 50(arr[max])    arr[i] = 50
            arr[max]=tempor;
//             System.out.println("=========="+arr[max]);50=19   -->arr[max]=19
            max--;
//            System.out.println("----"+arr[max]);
        }
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }

    }
}

1.10评委打分

1.10.1案例需求
  • 在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。 选手的最后得分为:去掉一个最高分和一 个最低分后 的4个评委平均值 (不考虑小数部分)。
package com.bdit.day06;

import java.util.Scanner;

//在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。
//选手的最后得分为:去掉一个最高分和一个最低分后,选手的4个评委平均值 (不考虑小数部分)
public class Exercise10 {
    public static void main(String[] args) {
        int[] a=new int[6];
        int i=0;
        int all=0;
        Scanner sc = new Scanner(System.in);
        for (i = 0; i < a.length; i++) {
            System.out.println("请第"+(i+1)+"个评委打分:");
            int in = sc.nextInt();
            a[i]=in;
        }
        int max =a[0];
        int min =a[0];
//        以下两种都能输出数组a中的数据
        for (int c=0;c<=a.length-1;c++){
            //输出最大值
            if(a[c]>max){
                max=a[c];
            }
            //输出最小值
            if (a[c] < min){
                min = a[c];
            }
            //输出总值
            all+=a[c];

        }
        System.out.println("最大值"+max);
        System.out.println("最小值"+min);
        System.out.println("总值"+all);
        System.out.println("最终得分"+(all-(max+min)/(a.length-2)));


    }
}

1.11、利滚利

  • 复利的力量:也就是『利滚利』。每年购买1万元理财产品,收益率为10%,输入年数,返回未来资产总值。 按步骤编写代码,效果如图所示:
    在这里插入图片描述

开发提示: 利滚利,就是前一年的利息,计入下一年的本金,从而构成复利。
计算公式:

Ling'du'yu'

   package com;
   public class Demo10 {
public static void main(String[] args) {
    System.out.println("第二十年末:" + demo1(20));
}
public static int demo1(int x) {

    //循环输出n次方
    double z = 1;
    for (int i = 1; i <= x; i++) {
        double y = 1 + 0.1;
        z *= y;
    }

    int c = 10000;
    System.out.println("第一年末:" + c);
    //计算利润公式,z是(1+利润)的n次方
    int a = (int) (c * (z - 1) / 0.1);
    for (int i = 1; i <= x; i++) {

        //前一年的利息,计入下一年的本金
        c += a; 
    }
    return a;
}}
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值