Método de diseño en lenguaje C para subir escaleras
Estoy aprendiendo Pascal ~ Solo puedo hablar de algoritmos.
Cuando dices subir escaleras, te refieres a que hay n escalones. Puedes subir 1, 2..., p escalones (1lt; =plt; =n) cada vez. ¿Hay que llegar a la cima? El camino a seguir, ¿verdad?
Esto es recursividad~
Supongamos que hay f(i) formas diferentes de subir i pasos. Es muy sencillo saber que f(1)=1, f(2). )=2... Cuando i es mayor que 2, discútalo en n situaciones: el primer paso sube 1 paso, el primer paso sube 2 pasos,... el primer paso sube n pasos.
Si el primer paso es subir un nivel de escaleras, entonces quedan i-1 niveles de escaleras. Hay f(i-1) formas de completar los i-1 niveles de escaleras. .
Si el primer paso es subir 2 escaleras, quedan i-2 escaleras. Hay f(i-2) formas de completar las i-2 escaleras.
......
Si el primer paso es subir n pasos, entonces quedan i-n pasos. Para terminar los i-2 pasos, quedarán f. en métodos de un paso (i-n).
Entonces, en el primer caso, hay f(i-1) formas diferentes de moverse, y en el segundo caso, hay f(i-2) formas diferentes de moverse...ninguna de En estos n casos, repita el plan sin perder nada, entonces obtenemos f(i)=f(i-1) f(i-2)... f(i-n)
Entonces estará bien. Incluso 200 escalones no son un problema.