0,1,1,2,4,8,16,32,64。第1下表数据为0,第2个下表数据为1,第3个下表数据为1,第4下表数据为4,第5数据下表为8,求第n个加上前面总和,用java递归算法
时间: 2024-03-22 15:38:54 浏览: 9
以下是Java递归算法代码实现:
```java
public class Main {
public static void main(String[] args) {
int n = 9;
int sum = getSum(n);
System.out.println(sum);
}
public static int getSum(int n) {
if (n == 1) {
return 0;
} else {
return getFib(n) + getSum(n - 1);
}
}
public static int getFib(int n) {
if (n == 1 || n == 2) {
return n - 1;
} else {
return getFib(n - 1) + getFib(n - 2);
}
}
}
```
该代码中,getSum方法用于计算前n个下标的总和,使用了递归调用getFib方法来获取斐波那契数列中的第n个数。当n为1时,直接返回0,否则返回第n个斐波那契数加上前n-1个下标的总和(即递归调用getSum(n-1))。getFib方法用于计算斐波那契数列中的第n个数。当n为1或2时,直接返回n-1,否则返回第n-1个斐波那契数加上第n-2个斐波那契数(即递归调用getFib(n-1)和getFib(n-2))。在main方法中,我们传入n=9进行测试,输出结果为342,即前9个下标的总和加上第9个下标的数据。