El enésimo elemento de la secuencia de Fibonacci del algoritmo recursivo de Java

La secuencia de Fibonacci, también conocida como la secuencia de la proporción áurea, fue propuesta por el matemático italiano Leonardo Fibonacci. La secuencia de Fibonacci se refiere a una secuencia de este tipo: 1, 1, 2, 3, 5, 8, 13, 21, 34, ..., esta secuencia comienza desde el tercer término, y cada término es igual a los dos anteriores Suma. Matemáticamente, las formas en que se puede repetir la sucesión de Fibonacci se definen de la siguiente manera:

F (1)=1,F (2)=1,  F (n)= F (n – 1)+ F (n – 2)(n  ≥ 3,n  ∈ N*)

1. La condición de terminación recursiva de la sucesión de Fibonacci es
obviamente fácil de ver Observando la definición de la sucesión de Fibonacci, podemos encontrar fácilmente que cuando n=1 o n=2, es la condición de terminación recursiva de la sucesión de Fibonacci. En este momento, se puede dar el valor específico de la secuencia de Fibonacci.

2. El método de procesamiento cuando la secuencia de Fibonacci termina recursivamente es el
mismo, basado en la definición recursiva de la secuencia de Fibonacci, cuando la secuencia de Fibonacci alcanza la condición de terminación n=1 o n=2, también podemos encontrar fácilmente que Correspondiente a  F (1)=1, F (2)=1, este es el valor correspondiente de la secuencia de Fibonacci cuando termina la recursividad.

3. Extracción lógica de repetición recursiva
de la secuencia de Fibonacci De acuerdo con la definición matemática de la secuencia de Fibonacci, F (n)= F (n – 1)+ F (n – 2) ( n  ≥ 3, n  ∈ N*), es decir, cuando  n  ≥ 3, el valor de este elemento en la secuencia de Fibonacci es igual a la suma de los valores de los dos elementos anteriores, por lo que resolver una secuencia de Fibonacci relativamente grande se puede transformar en resolver una secuencia de Fibonacci con un valor menor El valor de la secuencia de Bonacci, hay una lógica repetida en ella que se puede reutilizar recursivamente.

el código se muestra a continuación:

import java.util.Scanner;

public class Test24 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请斐波那契数列的项数:");
        int num=scanner.nextInt();
        int s=func(num);
        System.out.println("斐波那契数列的第"+num+"项为"+s);
    }

    private static int func(int num) {
        if(num==1||num==2){
            return 1;
        }else{
            return func(num-1)+func(num-2);
        }
    }
}

Logrando el resultado:

 

Supongo que te gusta

Origin blog.csdn.net/m0_62218217/article/details/121585426
Recomendado
Clasificación