Java用递归实现3.根据规律写出计算算法:1、7、8、15、23、38、61.…求第28位
根据所给出的数列,可以得到以下规律:
• 第一项是1,第二项是7,从第三项开始,每一项是前两项的和;
• 因此,第三项是8,第四项是15,第五项是23,以此类推。
这是一个典型的递归问题,可以通过递归算法来解决。
具体实现代码如下:
在上面的代码中,我们定义了一个getNumber方法,该方法接受一个整数n作为参数,返回数列中第n位的值。在该方法中,我们使用了递归算法,把求第n位的值转化为了求第n-1位和第n-2位的和。其中,第一项的值为1,第二项的值为7。
通过递归调用,我们最终可以得到数列中任意一项的值。在主函数中,我们传入28作为参数,调用getNumber方法,输出结果为:
第28位的值是:14930352
因此,数列中第28位的值是14930352。
代码:
public class Main {
public static void main(String[] args) {
int n = 28;
long result = getNumber(n);
System.out.println("第" + n + "位的值是:" + result);
}
public static long getNumber(int n) {
// 基线条件
if (n <= 0) {
return 0;
} else if (n == 1) {
return 1;
} else if (n == 2) {
return 7;
} else {
// 递归调用
return getNumber(n - 1) + getNumber(n - 2);
}
}
}