048 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 10 案例——阶乘的累加和

048 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 10 案例——阶乘的累加和

本文知识点:通过案例练习嵌套循环应用

案例练习——阶乘的累加和

案例题目:
mark

问题核心解决思路:
2种运算,并且每种运算都是连续算很多次的。连续算很多次,我们考虑用循环;2种运算,我们考虑用嵌套循环。

具体的解决:
1、用外重循环做和的运算
2、用内重循环做阶乘的运算

程序代码及其执行结果:
mark

以上程序代码计算结果有问题?问题何在?
mark
问题出在:内重循环中的存放阶乘计算结果的s,没有重新赋值为1。导致第二轮之后的每一轮,执行内重循环时,s的值随着前面运算已经增加,产生了错误。

所以,解决方案很简单,对s重置为1
修改后的程序代码及其执行结果:完全无误
mark

分析整个嵌套for循环的详细执行路程

注意点:
1、内重循环中的表达式2:j<=i
2、存放阶乘计算结果的变量s。要在外部循环中重置为1,才能确保每轮内重循环执行过程中,s有效无误。

求10的阶乘

程序执行结果无误
mark

求50的阶乘——int范围问题

mark
结果是负数,为什么?
因为结果的表示范围已经超出了int类型的表示范围了。所以发生了数据溢出,得到的结果就是一个负值了。

数据过大溢出怎么解决?改用long类型
mark

改用long类型之后还是溢出怎么办?
mark

Java中提供了处理大数据的类,可以使用。我们后面会学习。

原文地址:https://www.cnblogs.com/xlfcjx/p/13687639.html