我正在尝试使用递归来解决返回序列第 n 个数字的函数。它是这样的:
首先,n(整数)必须大于0。第一个数字以4开头。后面的每个数字都是前一个数字的三倍,然后加上1。例如,这些是序列的前几个数字:1 , 4, 13, 40, 121, 364, 等等
int recursive_sequence(int n)
{
if (n == 1)
return 1; // This is base case
else
return 4 + (3 * (n-1) + 1) + recursive_sequence(n-1); // This is recursive case
}
我尝试了这个,它从第一个数字 4 开始,然后将它添加到“前面数字的 3 倍,加 1”,然后调用递归函数向下一个数字。例如,如果“n”输入为“4”,那么正确的输出将是 40,因为 3 * (13) + 1 = 40。但是,例如,使用我的代码,我得到了 34。我在做什么错误的?如果可以,请在您的回答中包含一个示例(将不胜感激!)。