[Lenguaje C] Llevarte de la mano para resolver el problema de los pasos de salto de rana

inserte la descripción de la imagen aquí

Página de inicio personal de Junxi_

Sé diligente y anima los años a no esperar a nadie.

Desarrollo de juegos C/C++


Hola, soy Junxi_. La actualización de hoy es el clásico problema recursivo: pasos de salto de rana. Entre todos los problemas relacionados con la recursividad, los pasos de salto de rana son uno de los problemas más conocidos. Se puede decir que si realmente puedes entender el problema de los pasos de salto de rana, tu recursividad no será tan mala. Hoy te llevaré a analizar profundamente el problema de los pasos de salto de rana.

Descripción detallada del problema de la rana saltando en las escaleras.

Una rana puede saltar 1 o 2 escalones a la vez. Encuentra de cuántas maneras la rana puede saltar un escalón de n niveles.


Resolver concretamente el problema de los pasos de salto de rana.

Análisis de la Solución al Problema del Salto de Rana en Escaleras

  • Cuando N=1, la rana solo tiene un método de salto.
    inserte la descripción de la imagen aquí

  • Cuando N=2, la rana puede saltar dos veces en el primer paso y una vez en el segundo Hay dos métodos de salto.
    inserte la descripción de la imagen aquí

  • Cuando N=3, la rana puede saltar un nivel de pasos primero, luego necesita saltar dos pasos, luego es el método de salto cuando N=2 en este momento, hay dos métodos de salto.

  • Cuando la rana salta dos pasos una vez, solo necesita saltar un paso en este momento, entonces es el método de salto cuando N = 1.

  • En este momento, su método de salto es igual a (N=1)+(N=2) métodos de salto.
    inserte la descripción de la imagen aquí

  • Cuando N=4, cuando la rana salta un paso a la vez, todavía necesita saltar tres pasos, entonces su método de salto restante en este momento es igual al método de salto cuando N=3, es decir, hay tres métodos de salto .

  • Cuando la rana salta dos pasos una vez, todavía quedan dos pasos por saltar, entonces el método de salto restante en este momento es el método de salto cuando N = 2, y hay dos métodos de salto.

  • Entonces su método de salto en este momento es igual a (N=2) + (N=3) métodos de salto.
    inserte la descripción de la imagen aquí

Resumen de ideas

  • Entonces, no es difícil ver la ley de los pasos de salto de la rana: cuando N>2, el número de saltos en este momento es igual a la suma del número de saltos de las dos ranas anteriores.

Implementación de Frog Jumping Stairs en lenguaje C

  • Código
#include<stdio.h>
int Jump(int n)
{
    
    
	if (n == 1)
	{
    
    
		return 1;//当只有一层台阶时直接返回1
	}
	 if (n == 2)
	{
    
    
		return 2;//当只有2层台阶时就返回2
	}
	 if (n > 2)
	 {
    
    
		 return Jump(n - 1) + Jump(n - 2);
	 }//当n>2时,利用递归进行返回
}
int main()
{
    
    
	int n = 0;
	scanf("%d", &n);
	int num = Jump(n);
	printf("%d\n", num);
	return 0;
}
 

Pregunta avanzada:

Una rana puede saltar 1 peldaño, 2 peldaños o 3 peldaños a la vez. Encuentra de cuántas maneras la rana puede saltar un escalón de n niveles.

Análisis de ideas

  • En primer lugar, cuando N=1, la rana tiene un método de salto.

  • Cuando N = 2, la rana puede saltar dos veces en el primer paso y una vez en el segundo paso Hay dos métodos de salto

  • Cuando N=3, cuando la rana salta un paso primero, entonces necesita saltar dos pasos, entonces es el método de salto cuando N=2 en este momento, es decir, hay dos métodos de salto.
    Cuando la rana salta dos pasos una vez, solo necesita saltar un paso más en este momento, entonces es el método de salto cuando N = 1 en este momento, es decir, hay un método de salto.

    Al final, la rana salta directamente sobre tres escalones y solo hay una forma de saltar. Entonces su número total de saltos es (N=1)+(N=2)+1=4 tipos de saltos.

  • Cuando N=4, cuando la rana salta un paso a la vez, todavía quedan tres pasos por saltar, entonces es el método de salto cuando N=3 en este momento, es decir, hay cuatro métodos de salto.
    Cuando la rana salta dos pasos una vez, todavía quedan dos pasos por saltar, entonces es el método de salto cuando N = 2 en este momento, y hay dos métodos de salto. Entonces su número total de saltos es (N=2)+(N=3)=6 saltos.

  • resumen de la ley

  • Cuando N>3, es esencialmente la suma de los dos métodos de salto anteriores para obtener el número total de pasos de salto de rana en este momento.

  • La demostración del código es la siguiente:

#include<stdio.h>
int Jump(int n)
{
    
    
	if (n == 1)
	{
    
    
		return 1;
	}
	if (n == 2)
	{
    
    
		return 2;
	}
	if (n == 3)
	{
    
    
		return 3;
	}
	if (n > 3)
	{
    
    
		return Jump(n - 1) + Jump(n - 2)+Jump(n-3);
	}
}
 
int main()
{
    
    
	int n = 0;
	scanf("%d", &n);
	int num = Jump(n);
	printf("%d\n", num);
	return 0;
}
  • Nota:
  • Cuando la rana puede saltar k pasos cada vez, también podemos encontrar la ley correspondiente para resolverlo como arriba

Resumir

  • Este es el final del contenido de hoy. Hoy específicamente resolvimos el problema de los pasos de salto de rana a través de la recursividad. Si todavía está confundido acerca de los pasos, debe intentarlo usted mismo, de lo contrario, es muy fácil de olvidar y muy difícil de entender, ¡tenemos que practicar repetidamente para familiarizarnos con él!

  • Bueno, si tiene alguna pregunta, por favor pregúnteme en el área de comentarios o mensaje privado, ¡hasta la próxima!

No es fácil crear un nuevo blogger. Si cree que el contenido del artículo es útil para usted, puede hacer clic en este nuevo blogger antes de irse. ¡Tu apoyo es mi motivación para actualizar! ! !

**(¡Ke Li te pide que apoyes al bloguero tres veces seguidas! Haz clic en el comentario a continuación para darle me gusta y recolectar para ayudar a Ke Li)**

inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/syf666250/article/details/131464294
Recomendado
Clasificación