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