Java黑皮书课后题第1章:*1.11(人口估算)编写一个程序,显示未来5年的每年人口数。假设当前的人口是312 032 486,每年有365天
Java黑皮书课后题第1章:*1.11(人口估算)
- 题目
- 题目描述
- 破题
- 代码块
- 方法评析
- 为什么print函数内的表达式不能分开
- 修改日志
题目
题目描述
*1.11(人口估算)编写一个程序,显示未来5年的每年人口数。假设当前的人口是312 032 486,每年有365天。
(每7s出生1人,每13s死亡1人,每45s有移民迁入)
后面提示有点儿冗余,概括一下就是:
5 / 4 = 1
而5.0 / 4 = 1.25 且 5 / 4.0 = 1.25 且 5.0 / 4.0 = 1.25
破题
先假设人口为0,每7s出生1人,每13s死亡1人,每45s有移民迁入
用这仨数分别求出一年出生、死亡、移民迁入的数量(这个时候要带小数部分)
一年出生+一年迁入-一年死亡=一年净增长数量
再将求出的净增长数量直接去掉小数部分
带入“当前人口312 032 486”
312 032 486+一年净增长=第一年人口数
312 032 486+2*一年净增长=第二年人口数
……
另外,312 032 486在Java语法中不存在,如果想每三位数分开一次,需要用_分隔,即312_032_486(可以用在表达式中)
代码块
public class Test1_11 {public static void main(String[] args) {/*** 法1思路:适合刚接触Java* 一年总秒数:365*24*60*60* 一年人口净增长:365*24*60*60/7.0+365*24*60*60/45.0-365*24*60*60/13.0*/System.out.println(365*24*60*60/7.0+365*24*60*60/45.0-365*24*60*60/13.0);// 求得2780096.7032967033,去掉小数部分为2780096// 当前人口为312 032 486System.out.println("第一年人口:"+(312_032_486+2_780_096));System.out.println("第二年人口:"+(312_032_486+ 2 * 2_780_096));System.out.println("第三年人口:"+(312_032_486+ 3 * 2_780_096));System.out.println("第四年人口:"+(312_032_486+ 4 * 2_780_096));System.out.println("第五年人口:"+(312_032_486+ 5 * 2_780_096));// 法2int people = 312_032_486; // 原先人口数// 一年净增长double myTime = 365*24*60*60; // 一年秒数double a = myTime / 7.0; // 一年出生double b = myTime / 45.0; // 一年迁入double c = myTime / 13.0; // 一年死亡int increase =(int)(a+b-c); // 一年净增长// 输出每年人口System.out.println("第一年人口:"+(people+increase));System.out.println("第二年人口:"+(people+ 2 * increase));System.out.println("第三年人口:"+(people+ 3 * increase));System.out.println("第四年人口:"+(people+ 4 * increase));System.out.println("第五年人口:"+(people+5 * increase));/**输出:* 2780096.7032967033* 第一年人口:314812582* 第二年人口:317592678* 第三年人口:320372774* 第四年人口:323152870* 第五年人口:325932966* 第一年人口:314812582* 第二年人口:317592678* 第三年人口:320372774* 第四年人口:323152870* 第五年人口:325932966*/}
}
方法评析
因为题目并不严谨,笔者在求一年出生、一年死亡、一年迁入时是先分别求出带小数数值double值,再加起来去掉小数部分转化为不带小数值int值
当然还有一种方法是在求一年出生、一年死亡、一年迁入时,求的数值不带小数数值
以上两种方法两种结果,代码块的两个方法时用第一种思路做出来的
第二种方法相对第一种更简单,去掉上面代码求一年出生、一年死亡、一年迁入表达式中的小数数值和小数点即可
为什么print函数内的表达式不能分开
可见我的另一篇blog:(也是本书1.9)
https://blog.csdn.net/weixin_46356698/article/details/119771883
修改日志
Java黑皮书课后题第1章:*1.11(人口估算)编写一个程序,显示未来5年的每年人口数。假设当前的人口是312 032 486,每年有365天相关推荐
- Java黑皮书课后题第5章:**5.22(金融应用:显示分期还贷时间表)对于给定的贷款额,月支付额包括偿还本金及利息。编写一个程序,让用户输入贷款总额年限利率,然后显示分期还贷时间表
5.22(金融应用:显示分期还贷时间表)对于给定的贷款额,月支付额包括偿还本金及利息.编写一个程序,让用户输入贷款总额年限利率,然后显示分期还贷时间表 题目 题目概述 运行示例 代码 题目 题目概述 ...
- Java黑皮书课后题第6章:*6.20(计算一个字符串中字母的个数)编写一个方法,使用下面的方法体计算字符串中的字母个数。编写一个测试程序,提示用户输入字符串,然后显示字符串中的字母个数
6.20(计算一个字符串中字母的个数)编写一个方法,使用下面的方法体计算字符串中的字母个数.编写一个测试程序,提示用户输入字符串,然后显示字符串中的字母个数 题目 题目描述 破题 代码 运行示例 题目 ...
- Java黑皮书课后题第6章:*6.2(求一个整数各位数字之和)编写一个方法,计算一个整数各位数字之和。使用下面的方法头:public static int sumDigits(long n)
6.2(求一个整数各位数字之和)编写一个方法,计算一个整数各位数字之和.使用下面的方法头:public static int sumDigits(long n) 题目 题目概述 槽点 代码 运行示例 ...
- Java黑皮书课后题第2章:*2.21(金融应用:计算未来投资回报)编写程序,读取投资总额、年利率和年龄,显示未来投资回报金额
*2.21(金融应用:计算未来投资回报)编写程序,读取投资总额.年利率和年龄,显示未来投资回报金额 题目 题目概述 举例与运行示例 思路 代码 赘述 题目 题目概述 2.21(金融应用:计算未来投资回 ...
- Java黑皮书课后题第7章:*7.22(计算一个字符串中大写字母的数目)编写程序,从命令行输入一个字符串,然后显示字符串中大写字母的数目
7.22(计算一个字符串中大写字母的数目)编写程序,从命令行输入一个字符串,然后显示字符串中大写字母的数目 题目 题目描述 破题 代码 运行实例 题目 题目描述 7.22(计算一个字符串中大写字母的数 ...
- Java黑皮书课后题第2章:2.6(求一个整数各位数的和)读取一个0和1000之间的整数,并将给整数的各位数字相加
2.6(求一个整数各位数的和)读取一个0和1000之间的整数,并将给整数的各位数字相加 题目 题目描述 运行示例 题目槽点与破题 题目槽点 破题 如何提取数字 代码块 方法评价 题目 题目描述 2.6 ...
- Java黑皮书课后题第10章:**10.25(新的字符串split方法)String类中的split方法会返回一个字符串数组,该数组是由分隔符分隔开的子串构成的
Java黑皮书课后题第10章:**10.25(新的字符串split方法) 题目 代码 运行实例 题目 代码 public class Test25 {public static String[] sp ...
- Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字
Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字 题目 代码 结果 题目 都在上面 代码 import java.math.B ...
- Java黑皮书课后题第10章:*10.13(几何:MyRectangle2D类)定义MyRectangle2D类
Java黑皮书课后题第10章:10.3 题目 程序 代码 Test13.java Test13_MyRectangle2D.java 运行 UML 题目 程序 Test13.java:测试程序 Tes ...
- Java黑皮书课后题第10章:10.2(BMI类)将下面的新构造方法加入BMI类中
Java黑皮书课后题第10章:10.2(BMI类)将下面的新构造方法加入BMI类中 题目 程序说明 题目槽点 代码:Test2_BMI.java 运行实例 题目 程序说明 Test2_BMI.java ...
最新文章
- ES6-const注意
- Elixir日常观察 VOL.1
- maven打包 jar中没有主清单属性
- python图像直方图与直方图均衡化
- HDU 5486 Difference of Clustering 图论
- Android SQLite 数据库详细介绍
- Orleans 知多少 | Orleans 中文文档上线
- 递归函数基例和链条_链条和叉子
- LeetCode 1011. 在 D 天内送达包裹的能力(二分查找)
- P4172 [WC2006]水管局长 LCT维护最小生成树
- Oracle报错:IO Error: Invalid number format for port number
- sql通用防注入程序php,sql通用防注入系统_PHP教程
- docker之基础命令相关操作下
- 转:Rust 调用C/C++
- 上市也没打算盈利?Hadoop之父企业Cloudera好任性
- python植物大战僵尸代码例_python实现植物大战僵尸游戏实例代码
- mysql字符串拼接有空值_MySQL字符串拼接
- 2021SC@SDUSC Zxing开源代码(十四)Aztec二维码(三)
- linux 下ssd训练自己的数据
- 三国群英传服务器维护是几点,20191112维护公告
热门文章
- python新手程序_推荐:一个适合于Python新手的入门练手项目
- 树莓派dht11上云_树莓派使用 DHT11 / DHT22 温湿度传感器
- P1141 01迷宫(BFS+记忆化)
- 小a的计算器(牛客签到题A)-简单模拟
- 阿里云PolarDB论文入选数据库顶会SIGMOD2021 最新一代架构领先世界
- Seata 1.4.0 重磅发布
- 阿里云李飞飞:传统数据库步履蹒跚,未来的机会在哪里?
- python pynlpir中科院分词的使用
- oracle行列转换总结
- Oracle 数据类型及存储方式