问题:
编写递归函数返回斐波那契数列1、1、2、3、5、……,第n项值,n不大于40
在解决这类问题的时候,我们利用了数学上斐波那契数列的定义:第n项(n>2)是前两项之和。
因此我们需要定义一个fib函数,利用递归调用自身来计算第n-1项和第n-2项的和,从而得到第n项的值。
代码实现如下:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
System.out.println("num = " + fib(n));
}
public static int fib(int n) {
if (n <= 2) {
return 1;
} else {
return fib(n - 1) + fib(n - 2);
}
}
}
在这段代码中,fib()
方法用递归的方式计算斐波那契数列的第n项的值。当n小于等于2时,斐波那契数列的第n项为1;否则,递归地计算第n-1项和第n-2项的值相加。
利用这个方法,我们可以轻易的解决斐波那契问题中的第n项。
希望这个代码可以帮助到你!