Java初级必做习题1

1、继承身高问题

身高是具有遗传性的,子女的身高和父母的身高有一定的关系。假定,父母和子女的身高遗传关系如下:

儿子身高(厘米)=(父亲身高+母亲身高) ×1.08÷2

女儿身高(厘米)=(父亲身高×0.923+母亲身高) ÷2

现有父亲身高177CM,母亲身高165CM。求子女身高分别预计为多少?
public class Test1 {
    
    public static void main(String[] args) {
        double fatherHight = 177.0;
        double motherHight = 165.0;
        double sonHight = (fatherHight + motherHight) * 1.08 / 2;
        double daughterHight = (fatherHight * 0.923 + motherHight) / 2;
        System.out.println(sonHight);
        System.out.println(daughterHight);
    }

}

2、判断两个妹妹的钱是否相同

红茶妹妹有21元钱,她攒了几天钱之后自己的钱比原来的两倍还多三块。
绿茶妹妹有24元钱,她攒了几天钱之后自己的钱正好是原来的两倍。
那么红茶和绿茶现在的钱一样多,请问对么?
public class Test2 {
   
    public static void main(String[] args) {
        int redMoney = 21 * 2 + 3;
        int greenMoney = 24 * 2;
        String rel = redMoney == greenMoney ? "相同" : "不同";
        System.out.println(rel);
    }

}

3、外卖优惠问题

某小伙想定一份外卖,商家的优惠方式如下:鱼香肉丝单点24元,油炸花生米单点8元,米饭单点3元。
订单满30元8折优惠。鱼香肉丝优惠价16元,但是优惠价和折扣不能同时使用。
那么这个小伙要点这三样东西,最少要花多少钱?
public class Test3 {
    
    public static void main(String[] args) {
        double firstWay = (24 + 8 + 3) * 0.8;
        int secondWay = 16 + 8 + 3;
        double rel = firstWay > secondWay ? secondWay : firstWay;
        System.out.println("最少花费" + rel + "元");
    }
}

4、键盘录入一个三位数,求这个三位数每一位的数字和

(本题我利用了循环语句,可以自行尝试不用循环语句写出)

public class Test4 {
    
    public static void main(String[] args) {
        int sum = 0;
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        while (num != 0) {
            int last = num % 10;
            sum = sum + last;
            num /= 10;
        }
        System.out.println(sum);
    }
    
}

5、键盘录入一个任意正数,求这个数每位的值

(while循环的详细说明)

public class Test5 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();                 // 输入一个任意正数,这里以 123 为例
        while (num != 0) {                      // 当 num 里面存放的数不等于 0 的时候进行循环
            int last = num % 10;                // 定义一个变量存放输入数字的最后一位数,123 % 10 = 3,此时last = 3
            System.out.println(last);           // 输出当前 last 的值:3
            num = num / 10;                     // 将最右边的那个数去掉,当前 num = 123,将 123 / 10 的值 12 赋给 num
                                                    // 也就是用 12 将原来的数给覆盖掉了
        }
    }

                                                // 这个时候循环还没有结束因为 12 != 0
                                                // 12 % 10 = 2,此时 last = 2
                                                // 输出当前 last 的值:2
                                                // 将最右边的那个数去掉,当前 num = 12,将 12 / 10 的值 1 赋给 num

                                                // 1 != 0 所以循环继续
                                                // 1 % 10 = 1,此时 last = 1
                                                // 输出当前 last 的值:1
                                                // 将最右边的那个数去掉,当前 num = 1,将 1 / 10 的值 0 赋给 num

                                                // 因为现在 num = 0 不满足 num != 0 了,所以结束循环
}

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Color20

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值