递归冰雹序列

时间:2018-02-21 21:46:35

标签: java recursion

程序打印序列的长度,序列中的最大数字,从1到数字的最长序列以及从打开到数字的最长序列的数字。我有一切正确,除了函数startNum(int n),它应该将具有最长的冰雹序列的数字从一个返回到该数字“n”。代码返回错误的数字,正确的答案是9,因为它具有从1到16的最长序列,但函数starNum返回16

2 个答案:

答案 0 :(得分:0)

我认为问题是startNum函数中的n--。在某些时候,您将使用n=2调用startNum。然后在val = n--; n将递减为1,然后用n-1 = 0调用递归。你的基本情况是n == 1,所以如果n小于1,那么它将继续无限 - 或者直到你的堆栈内存不足,在这种情况下。

答案 1 :(得分:0)

当n = 2时,调用冰雹(0)并且没有为0定义冰雹。