第52课 1.7e+007不是乱码
1.7e+007不是乱码(for循环、科学记数法)
编程世界的研究员分离出一个“&”微生物,这个微生物以每小时裂变一次的速度快速繁殖,并且裂变出的微生物都不会死亡,似乎具备永生的力量。研究员仔细地对它进行了24小时的研究,记录着每小时微生物数量的变化,并尝试了各种办法,最终找到了可以杀死这种微生物的办法。
试着用程序输出微生物每小时的数量。
裂变的微生物

运行程序:
1小时,微生物数量是:2
2小时,微生物数量是:4
3小时,微生物数量是:8
4小时,微生物数量是:16
5小时,微生物数量是:32
6小时,微生物数量是:64
7小时,微生物数量是:1.3e+002
8小时,微生物数量是:2.6e+002
9小时,微生物数量是:5.1e+002
10小时,微生物数量是:1e+003
11小时,微生物数量是:2e+003
12小时,微生物数量是:4.1e+003
13小时,微生物数量是:8.2e+003
14小时,微生物数量是:1.6e+004
15小时,微生物数量是:3.3e+004
16小时,微生物数量是:6.6e+004
17小时,微生物数量是:1.3e+005
18小时,微生物数量是:2.6e+005
19小时,微生物数量是:5.2e+005
20小时,微生物数量是:1e+006
21小时,微生物数量是:2.1e+006
22小时,微生物数量是:4.2e+006
23小时,微生物数量是:8.4e+006
24小时,微生物数量是:1.7e+007
(1)total*=speed→total=total*2:微生物总是按照每小时增加一倍的速度繁殖。
(2)for(int hour=1; hour<=hours; hour++):通过for循环从1小时一直到24小时。
(3)setprecision(2):用于设置输出的有效位数(需要头文件),例如,1.26输出两位有效数字是1.3。
提出思考
7小时输出的1.3e+002是什么呀?
1.3e+002是科学记数法的表示方式,用来表示一个数的数量级和精度。
●1.3是基数,表示一个数的主体部分,因为setprecision(2),所以只取了两位有效数字。
●e是用于表示指数的符号。
●+002表示指数的值,也就是10的多少次方。在这种情况下,+002表示10的2次方,即100。
因此,1.3e+002可以理解为1.3乘以10的2次方,即130。这是一个用科学记数法表示的数,表示数量级为100,并且精确到小数点后一位。科学记数法通常用于表示非常大或非常小的数,以便更容易理解它们的数量级。
有+就有-,0.0000345用科学记数法表示3.4e-005→3.4乘以10的-5次方。

巩固练习
(1)以下程序的输出结果是什么?

输出:_____________________________________________________________ _
(2)在科学记数法中,2.5e3表示什么?()
A.2.5乘以10的3次方
B.2.5除以10的3次方
C.2.5乘以3次方
D.2.5除以3次方
(3)我们正在研究一种放射性元素的衰变过程。这种元素每小时会以一定的比例进行衰变,衰变率为每小时减少50%。初始时,拥有1克这种放射性元素。希望你编写一个程序来模拟并计算多少小时后剩余的元素质量会小于0.00001克。