Java用递归实现3.根据规律写出计算算法:1、7、8、15、23、38、61.…求第28位

 我来答
爱编程的小鹤
2023-04-20
知道答主
回答量:31
采纳率:0%
帮助的人:1.3万
展开全部

根据所给出的数列,可以得到以下规律:

• 第一项是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);

}

}

}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式