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

浙公网安备 33010602011771号