那些年,我们一起做过的 Java 课后练习题(11 - 15)

分析

直接三重循环,然后加一个判断语句,让三位数的各位上的数都不相同即可!

实现

/**

  • Created with IntelliJ IDEA.

  • @author : cunyu

  • @version : 1.0

  • @email : 747731461@qq.com

  • @公众号 : 村雨遥

  • @website : https://cunyu1943.github.io

  • @date : 2021/6/2 16:46

  • @project : Java 编程实例

  • @package : PACKAGE_NAME

  • @className : Example11

  • @description :

*/

public class Example11 {

public static void main(String[] args) {

int count = 0;

System.out.println(“组成的三位数是:”);

for (int i = 1; i < 5; i++) {

for (int j = 1; j < 5; j++) {

if (i != j) {

for (int k = 1; k < 5; k++) {

if (i != k && j != k) {

count++;

System.out.print((i * 100 + j * 10 + k) + “\t”);

// 每打印 5 个就换行

if (count % 5 == 0) {

System.out.println();

}

}

}

}

}

}

System.out.println(“\n共有 " + count + " 个不重复的三位数”);

}

}

结果

实例 12


题目

企业发放的奖金根据利润提成。利润低于或等于 10 万元时,奖金可提 10%;利润高于 10 万元,低于 20 万元时,低于 10 万元的部分按 10% 提成,高于10万元的部分,可提成 7.5%;20 万到 40 万之间时,高于 20 万元的部分,可提成 5%;40 万到60 万之间时高于 40 万元的部分,可提成 3%;60 万到 100 万之间时,高于 60 万元的部分,可提成 1.5%,高于 100 万元时,超过 100 万元的部分按 1% 提成,从键盘输入当月利润,求应发放奖金总数?

分析

分段计算利润即可;

实现

import java.util.Scanner;

/**

  • Created with IntelliJ IDEA.

  • @author : cunyu

  • @version : 1.0

  • @email : 747731461@qq.com

  • @公众号 : 村雨遥

  • @website : https://cunyu1943.github.io

  • @date : 2021/6/2 17:14

  • @project : Java 编程实例

  • @package : PACKAGE_NAME

  • @className : Example12

  • @description :

*/

public class Example12 {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

System.out.println(“输入当月利润(万)”);

int profit = scanner.nextInt();

double bonus = 0;

if (profit <= 10) {

bonus = profit * 0.1;

} else if (10 < profit && profit <= 20) {

bonus = 10 * 0.1 + (profit - 10) * 0.075;

} else if (20 < profit && profit <= 40) {

bonus = 10 * 0.1 + 10 * 0.075 + (profit - 20) * 0.05;

} else if (40 < profit && profit <= 60) {

bonus = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + (profit - 40) * 0.03;

} else if (60 < profit && profit <= 100) {

bonus = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + (profit - 60) * 0.015;

} else if (profit > 100) {

bonus = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + 40 * 0.015 + (profit - 100) * 0.01;

}

System.out.println(“利润为 " + profit + " 时的奖金为:” + bonus + " 万");

}

}

结果

实例 13


题目

一个整数,加上 100 后是一个完全平方数,再加上 168 又是一个完全平方数,请问该数是多少?

分析

假设这个数是 num,那么就有:

  • num + 100 = n * n, num + 100 + 168 = m * m

  • m * m - n * n = (m + n)(m - n) = 168

  • 令 m + n = i m + n = i m+n=i, m − n = j m - n = j m−n=j, i ∗ j = 168 i * j =168 i∗j=168, i i i 和 j j j 至少一个是偶数

  • 那么 m = ( i + j ) / 2 m = (i + j) / 2 m=(i+j)/2, n = ( i − j ) / 2 n = (i - j) / 2 n=(i−j)/2, i i i 和 j j j 要么都是偶数,要么都是奇数

  • 从上面两部推导可知, i i i 与 j j j 均是不小于 2 的偶数

  • 由于 i ∗ j = 168 i * j = 168 i∗j=168,$ j>=2$,则 1 < i < = 168 / 2 1 < i <= 168 / 2 1<i<=168/2。

  • 接下来将 i i i 的所有数字循环计算即可

实现

/**

  • Created with IntelliJ IDEA.

  • @author : cunyu

  • @version : 1.0

  • @email : 747731461@qq.com

  • @公众号 : 村雨遥

  • @website : https://cunyu1943.github.io

  • @date : 2021/6/3 9:01

  • @project : Java 编程实例

  • @package : PACKAGE_NAME

  • @className : Example13

  • @description :

*/

public class Example13 {

public static void main(String[] args) {

int m = 0;

int n = 0;

int num = 0;

System.out.println(“该数可能是:”);

for (int i = 1; i <= (168 / 2); i++) {

if (168 % i == 0) {

int j = 168 / i;

if (i > j && (i + j) % 2 == 0 && (i - j) % 2 == 0) {

m = (i + j) / 2;

n = (i - j) / 2;

num = n * n - 100;

System.out.print(num + “\t”);

}

}

}

}

}

结果

实例 14


题目

输入某年某月某日,判断这一天是这一年的第几天?

分析

分别输入年月日,然后优先判断是否为闰年,然后根据是否闰年给出 2 月的天数,最后就是 switch 匹配月份,把天数相加即可。

实现

import java.util.GregorianCalendar;

import java.util.Scanner;

/**

  • Created with IntelliJ IDEA.

  • @author : cunyu

  • @version : 1.0

  • @email : 747731461@qq.com

  • @公众号 : 村雨遥

  • @website : https://cunyu1943.github.io

  • @date : 2021/6/3 9:39

  • @project : Java 编程实例

  • @package : PACKAGE_NAME

  • @className : Example14

  • @description :

*/

public class Example14 {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

int year = 0;

int month = 0;

int day = 0;

System.out.println(“输入年:”);

year = scanner.nextInt();

System.out.println(“输入月:”);

month = scanner.nextInt();

System.out.println(“输入日:”);
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

总结

大型分布式系统犹如一个生命,系统中各个服务犹如骨骼,其中的数据犹如血液,而Kafka犹如经络,串联整个系统。这份Kafka源码笔记通过大量的设计图展示、代码分析、示例分享,把Kafka的实现脉络展示在读者面前,帮助读者更好地研读Kafka代码。

麻烦帮忙转发一下这篇文章+关注我

就这一次!拼多多内部架构师培训Kafka源码笔记(现已绝版)

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

总结

大型分布式系统犹如一个生命,系统中各个服务犹如骨骼,其中的数据犹如血液,而Kafka犹如经络,串联整个系统。这份Kafka源码笔记通过大量的设计图展示、代码分析、示例分享,把Kafka的实现脉络展示在读者面前,帮助读者更好地研读Kafka代码。

麻烦帮忙转发一下这篇文章+关注我

[外链图片转存中…(img-q4KSw0qY-1712520673494)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值