Red de conocimiento informático - Problemas con los teléfonos móviles - Programación VB para generar los primeros N términos de la secuencia de Fibonacci

Programación VB para generar los primeros N términos de la secuencia de Fibonacci

Esta pregunta examina principalmente la idea de funciones recursivas. El código es el siguiente:

#includelt; stdio.hgt;

int? fbi(int i); // Función recursiva: genera el i-ésimo dato de la secuencia, donde empiezo desde 0 calcular.

int main()

{

int i, N

scanf("d", amp; N); /p>

for(i=0;ilt;N;i)

printf("d ", fbi(i));

return 0;

}

int fbi(int i)//Función recursiva: genera los datos i-ésimos de la secuencia. Aquí empiezo desde 0.

{

if(ilt; 2)

{

devolver i;

}

else

{

devolver fbi(i-1) fbi(i-2);

}

}

Información ampliada

Una función puede llamar a otras funciones. Si la función se llama a sí misma internamente, entonces se llama función recursiva. El efecto de la función recursiva es el mismo que el del método de bucle, es decir, la función recursiva es esencialmente una llamada cíclica de un método. Nota: puede ocurrir un bucle infinito. Por lo tanto, cuando utilice una función recursiva, asegúrese de definir los límites de la recursividad (es decir, cuándo salir del bucle).

Nota: En el uso real, las funciones recursivas rara vez se utilizan porque tardan más (en comparación con los bucles for y while). Para que una función recursiva sea útil, debe tener una forma de controlar el número de llamadas recursivas.

El bucle se repite cada vez que la función se llama a sí misma. Ahora debería poder detectar el problema con esta función, ya que no tiene forma de detener la llamada recursiva. Esta función actúa como un bucle infinito porque no hay ningún código que impida que se repita.

Enciclopedia Baidu: función recursiva