Java数据结构和算法 - 递归

三角数字 Q: 什么是三角数字?

A: 据说一群在毕达哥拉斯领导下工作的古希腊的数学家,发现了在数学序列1,3,6,10,15,21,……中有一种奇特的联系。这个数列中的第N项是由第N-1项加N得到的。 
由此,第二项是由第一项(1)加上2,得3。第三项是由第二项(3)加上3得到6,依次类推。 
这个序列中的数字被称为三角数字,因为它们可以被形象化地表示成对象的一个三角形排列。 

Java数据结构和算法 - 递归

Q: 如何使用循环求第N项?

A: 示例:TriangleNumber.java

Q: 如何使用递归求第N项?

A: 导致递归的方法直接返回而没有再一次进行递归调用,此时我们称为基值情况(base case)。

A: 每一个递归方法都有一个基值(中止)条件,以防止无限地递归下来,避免由此引发的程序崩溃,这一点至关重要。

A: 示例:TriangleNumber.java

Q: 到底发生了什么?

A: 通过插入一些输出语句来跟踪观察参数和返回值,示例:TriangleNumber.java 
输出结果如下:

Enter a number = 5 Entering n = 5 Entering n = 4 Entering n = 3 Entering n = 2 Entering n = 1 Returning 1 Returning 3 Returning 6 Returning 10 Returning 15 Triangle = 15

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwsjfs.html