算法学习-递归-猴子爬山
1.需求描述
一个猴子沿着一座山的n级台阶向上爬,猴子上山一步可跳1级或3级,试求上山的n级台阶有多少种不同的爬法。
2.实现思路
f(1)=1
f(2)=1
f(3)=2
f(4)=f(3)+f(1)
f(n)=f(n-1)+f(n-3) ( n>3 )到第n个台阶,只有两种办法,n-1 跳1级别,或者n-3跳3级别
3.代码实现
package com.eric;
import java.util.Scanner;
/**
* 一个猴子沿着一座山的n级台阶向上爬,猴子上山一步可跳1级或3级,试求上山的n级台阶有多少种不同的爬法。
* 屏幕输入n,返回f(n)
*/
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
while (in.hasNextInt()){
int a = in.nextInt();
int[] ints=new int[1000];
ints[1]=1;
ints[2]=1;
ints[3]=2;
for (int i=4;i<=a;i++){
ints[i]=ints[i-1]+ints[i-3];
}
System.out.println(ints[a]);
}
}
}
We only live once, and time just goes by.

浙公网安备 33010602011771号