Cómo escribir un código en C ++ usando la serie Lucas

by admin

La capacidad de pensar de forma recursiva es muy importante para los desarrolladores de software. Un software de rutina recursiva repeticiones haciendo referencia a sí mismo en algún momento. una rutina de este tipo tiene un caso base que termina la recursividad y evita la rutina de ejercicio de forma indefinida. La mayoría de los programadores aprender cómo codificar la secuencia de Fibonacci cuando se enteran de la recursividad. Una serie muy similar de los números es la serie Lucas, y se puede resolver de forma recursiva también. La serie Lucas comienza con los números 2 y 1. Cada número subsiguiente en la serie es la suma de los dos anteriores - por ejemplo, el tercer número es 3 (1 + 2), seguido de 4 (3 + 1), seguido por 7 (4 + 3), y así sucesivamente.

Instrucciones

1 Lanzamiento de su IDE C ++ y crear un nuevo archivo de código fuente en C ++.

2 Crear una función denominada Lucas. La parte principal del programa alimentará Lucas un número y esperar a Lucas pasan una serie de nuevo a él. Esta sintaxis se logra escribiendo algo como esto:

int Lucas (int x)

{

}

3 Configurar el primer caso base. El primer caso base se produce cuando la entrada de número en la función de Lucas es 0. El resultado de esto está emitiendo el valor 2 al principal. Esto se puede hacer mediante la adición de un "if" en el interior de las llaves de la función de Lucas, como esto:

si (x == 0) {return 2; }

4 Configurar el segundo caso base. El segundo caso base se produce cuando la entrada de número en la función de Lucas es 1. El resultado de esto está emitiendo el valor 1 al principal. Puede escribir esta "cosa-if" como este, por debajo del "if" de la etapa 3:

else if (x == 1) {return 1; }

5 Establecer la llamada recursiva. Esta llamada llamará a la propia función de Lucas dos veces más, sumando el resultado de los dos resultados anteriores de la serie Lucas juntos. Esta llamada recursiva puede tener este aspecto, y va debajo de la instrucción "if-else" en el paso 4:

else {Lucas retorno (x - 1) + Lucas (x - 2); }

6 Llame a Lucas en la función principal. Va a colocar su función principal debajo de la función Lucas terminado, fuera de sus llaves. Toda la función principal debería tener este aspecto:

int main ()

{int y = Lucas (7); Y tribunal << << endl; return 0; }

7 Compilar y ejecutar este programa (muchos entornos de desarrollo logran esto pulsando F5). La salida del programa será de los primeros ocho números de la serie Lucas: 2, 1, 3, 4, 7, 11, 18, 29.

Consejos y advertencias

  • Este programa es altamente ineficiente con el fin de ser simple. Un gran número generarán muchos miles de llamadas recursivas idénticos. Por la memorización de los resultados como el programa prosigue, se puede hacer considerablemente más eficiente.
ETIQUETA: