Java递归实现斐波那契数列


代码如下:
public class demo{
public static void main(String args[]) {
demo d = new demo();
int n = d.method(3);
System.out.println(n);
}
public int method(int n) {
if(n == 1) {
return 1;
}else if(n == 2) {
return 1;
}else {
return method(n - 1) + method(n - 2);
}
}
}
使用方法:往第4行代码(n)中传值即可。可将第4行代码省略,直接println(d.method(3));
斐波那契数列例子:1 1 2 3 5 8 13 21 34 55 89 144
原理:首先查看n是否与1或2相同,如果相同就直接返回值1;如果不相同则进行计算,返回它的前一个值加上前两个值的和,由于调用自身的方法回到参数n继续循环计算,直到n等于1或者2运算完成后返回值。
例如上面代码的是3,则是return method(3 - 1) + method(3 - 2);,之后method(2)method(1)又重新运算,因为1和2符合上方if以及if else判断的值,所以第一个method(n -1)为1,第二个method(n -2)为1,两个相加返回2。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM