上n阶楼梯,每次走1/2/3步,计算多少种走法

package demo;

import java.util.Scanner;

public class P26 {
	//上n阶楼梯,每次走1/2/3步,计算多少种走法
	//从终点开始倒推,最后一次走可能从n-1/n-2/n-3阶走上来,f(n)=f(n-1)+f(n-2)+f(n-3),
	public static void main(String[] args) {
		Scanner scanner =new Scanner(System.in);
		while(true) {
			int n=scanner.nextInt();
			System.out.println(f(n)+"种走法");
		}
	}
	
	static int f(int n) {
		if(n==1) return 1;
		if(n==2) return 2;
		if(n==3) return 4;
		return f(n-1)+f(n-2)+f(n-3);
	}
}
posted @ 2022-05-02 19:42  fighterk  阅读(112)  评论(0)    收藏  举报