剑指offer(8)青蛙跳台阶

package java_jianzhioffer_algorithm;

import java.util.Scanner;
/**
 * 题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级。
 * 求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
 * @author hexiaoli
 * 思路:
 * 1)找规律,发现是fibonacci数列
 * 2)采用fibonacci的方法
 */
public class Frog_jump {
	public static int frogJump(int n) {
		int n1 = 2;
		int n2 = 1;
		int sum = 0;
		if(n <= 0) {
			return 0;
		}
		if( n == 1) {
			return 1;
		}
		if( n == 2) {
			return 2;
		}
		for(int i = 2;i < n;i++) {
			sum = n1 + n2;
			n2 = n1;
			n1 = sum;
		}
		return sum;
	}
	public static void main(String[] args) {
		Scanner input = new  Scanner(System.in);
		int n = input.nextInt();
		System.out.println(frogJump(n));
	}

}

猜你喜欢

转载自blog.csdn.net/hxl0925/article/details/89328345