Problembeschreibung : Ein Frosch kann bis zu 1 Schritt gleichzeitig oder bis zu 2 Schritte springen. Finden Sie die Gesamtzahl der Sprungmethoden, mit denen der Frosch auf einem n- Level-Schritt springen kann (unterschiedliche Reihenfolge, um unterschiedliche Ergebnisse zu berechnen).
Idee : Lassen Sie den Frosch auf einem n- Level-Schritt springen . Es gibt insgesamt f ( n ) Sprungmethoden. Es gibt nur einen Weg, um zur Leiter der ersten Ebene zu springen: Es gibt zwei Möglichkeiten, um zur Leiter der zweiten Ebene zu springen ( a . Ein Schritt zur zweiten Ebene, b . Zwei Schritte zur zweiten Ebene); wenn n > 2, Im ersten Schritt gibt es zwei Arten von Sprüngen. Unter der Annahme, dass der erste Sprung in die erste Ordnung erfolgt, sind f ( n -1) Arten von Sprüngen übrig. Unter der Annahme, dass der erste Sprung in die zweite Ordnung erfolgt, sind f ( n -2 übrig ) Art der Sprungmethode. Also ist f ( n ) = f ( n - 1) + f ( n - 2 ), was die Fibonacci-Sequenz ist. Also
Code:
package hgy.java.arithmetic;
import org.junit.Test;
public class JumpFloor {
public int jumpFloor(int target) {
int ways = 0;
if (target == 1)
ways = 1;
else if (target == 2)
ways = 2;
else {
int expre = 1;
int pre = 2;
for (int i = 3; i <= target; i++) {
ways = expre + pre;
expre = pre;
pre = ways;
}
}
return ways;
}
@Test
public void test() {
System.out.println(jumpFloor(3));
}
}