算法题练习系列之(四十一):童年生活二三事

-----------------------------------------------------------------------------------------------------------

时间限制:1秒  空间限制:32768K  代码长度限制 100 KB

-----------------------------------------------------------------------------------------------------------
题目描述:
NowCoder小时候走路喜欢蹦蹦跳跳,他最喜欢在楼梯上跳来跳去。但年幼的他一次只能走上一阶或者一下子蹦上两阶。
现在一共有N阶台阶,请你计算一下NowCoder从第0阶到第N阶共有几种走法。

输入描述:
输入包括多组数据。每组数据包括一个整数n, (1≤n≤90)。
输出描述:
对应每个输入包括一个输出。
为redraiment到达第n阶不同走法的数量。

输入例子:
1
2 
输出例子:
1
2

-----------------------------------------------------------------------------------------------------------

实现思路:
(1).经典的斐波那契数列问题演化,递归思想例题; (2).列举几个值,即可找出函数关系,f(1)=1,f(2)=2,f(3)=3,f(4)=4,f(5)=6,f(6)=9,找出规律 f(x) = f(x-1) + f(x-2); 

-----------------------------------------------------------------------------------------------------------


package com.biyao.algorithm.niuke.a2;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main_a2_008 {
	
	public static Map<Integer,Long> map = new HashMap<Integer,Long>();
	public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        while(scan.hasNextInt()){
        	int n = scan.nextInt();
        	System.out.println(getFloorNum(n));
        }
    
	}
	
	public static long getFloorNum(int n){
		if(n == 1){
			return 1;
		}else if(n == 2){
			return 2;
		}else{
			if(map.containsKey(n)){
				return map.get(n);
			}else{
				map.put(n, getFloorNum(n-1) + getFloorNum(n-2));
			}
			return map.get(n);
		}
	}

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值