Frosch springt Treppe 1

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

f ( 1 ) = 1 f ( 2 ) = 2 f ( n ) = f ( n - - 1 ) + f ( n - - 2 ) f (1) = 1 \\ f (2) = 2 \\ f (n) = f (n-1) + f (n-2)

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));
	}
}

Veröffentlichte 6 Originalartikel · mochte 0 · Besuche 16

Ich denke du magst

Origin blog.csdn.net/qq_35419705/article/details/105694577
Empfohlen
Rangfolge