public static int countWaysToJump(int N) {
		/*
		 * A set of stairs has N steps. You can jump either 1 or 2 steps at a
		 * time. For example, if the stairs is N=4 steps, you can reach the end
		 * in 5 possible ways: 1-1-1-1, or 1-2-1 or 1-1-2 or 2-1-1 or 2-2 Please
		 * implement this method to return the count of the different ways to
		 * reach the end of the stairs with N steps.
		 */

		// init
		int ways = 0;
		int countOf2s = 0;

		System.out.println("-----------------");

		// ber Stufen iterieren
		for (int i = N; i > 0; i--) {

			// Anzahl der 1en
			int countOf1s = N - 2 * countOf2s;
			// falls nicht negative Anzahl
			if (countOf1s >= 0) {
				System.out.println("aktuelle Lsung = " + countOf1s + "*1 + "
						+ (countOf2s) + "*2");
				// Anzahl der Kombinationen bestimmen
				// Permutation mit Wiederholung und identischen Gruppen:
				// http://de.wikipedia.org/wiki/Permutation#Permutation_mit_Wiederholung
				int permutationen = faculty(countOf1s + countOf2s)
						/ (faculty(countOf1s) * faculty(countOf2s));

				if (countOf1s == 0) {
					permutationen = 1;
				}
				System.out.println("Permutationen:" + permutationen);

				// Anzahl der Mglichkeite hochzhlen
				ways += permutationen;
			}
			// Anzahl der 2en inkrementieren
			countOf2s++;
		}

		return ways;
	}