天天看点

斐波那契数列递归求法

import java.util.Scanner;

public class curision {
    public   static int method(int n){
        if (n == 1||n == 0)
            return 1;
        else
            return method(n-1)+method(n-2);
    }
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        curision Cursion = new curision();
        System.out.println("请输入你要求取的第几个斐波那契数列:");
        String num = scanner.nextLine();
        int a = Integer.parseInt(num);
        System.out.println("所求的值为"+Cursion.method(a));

    }
}
           

斐波那契递归求法,在其中碰到了一个问题是因为缺少了

Scanner scanner = new Scanner(System.in);

,而是直接

String num = Scanner.nextLine();

错误是:

Error:(13, 29) java: 无法从静态上下文中引用非静态 方法 nextLine()

.

1:增加Scanner类的scanner对象;

2:将“Scanner”改为“scanner”。

进行以上改进以后:正确输出结果:

请输入你要求取的第几个斐波那契数列:
20
所求的值为10946

Process finished with exit code 0

           

递归方法虽然易于理解,但是时间复杂度是(2**n)。时间过长只能算前几位数字。