1. 程式人生 > >遞迴----小白上樓梯

遞迴----小白上樓梯

題目:小白正在上樓梯,樓梯有n階臺階,小白一次可以上1階,2階或者3階,實現一個方法,計算小白有多少種走完樓梯的方式。

思路:這種題目一般從最後結果入手,逆推,假如小白已經在最頂端,那麼有f(n)種方式走完所有樓梯,有f(n-1)種方式走完倒數第一個樓梯,有f(n-2)種方式走完倒數第二個樓梯,有f(n-3)種方式走完倒數第三個樓梯。那麼遞推公式為f(n)=f(n-1)+f(n-2)+f(n-3)。

程式碼:

import java.util.Scanner;

public class 小白上樓梯 {

	public static void main(String[] args) {
		
		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();
		int res = f(n);
		System.out.println(res);

	}

	private static int f(int n) {
		if (n==0) return 1;
		if (n==1) return 1;
		if (n==2) return 2;
		return f(n-1)+f(n-2)+f(n-3);
	}

}