【九度OJ1388】斐波那契数列之跳台阶
2013-10-17 00:00
513 查看
题目描述:
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
输入:
输入可能包含多个测试样例,对于每个测试案例,
输入包括一个整数n(1<=n<=70)。
输出:
对应每个测试案例,
输出该青蛙跳上一个n级的台阶总共有多少种跳法。
分析:
从后往前分析,青蛙完成最后一步有两个选择:跳一个或跳两个,则完成最后一步的所有方法为:完成最后一步的跳法加上完成最后第二步的跳法;因此可以得到递推公式为:
s(n) = s(n-1)+s(n-2);
s(1) = 1;
s(2) = 2;
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
输入:
输入可能包含多个测试样例,对于每个测试案例,
输入包括一个整数n(1<=n<=70)。
输出:
对应每个测试案例,
输出该青蛙跳上一个n级的台阶总共有多少种跳法。
分析:
从后往前分析,青蛙完成最后一步有两个选择:跳一个或跳两个,则完成最后一步的所有方法为:完成最后一步的跳法加上完成最后第二步的跳法;因此可以得到递推公式为:
s(n) = s(n-1)+s(n-2);
s(1) = 1;
s(2) = 2;
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.StreamTokenizer; /** * 斐波那契数列之青蛙跳台阶 * @author aqia358 * */ public class Main { public static long f(int n){ long[] a = new long[n+2]; a[1] = 1; a[2] = 2; int pos = 3; while(pos <= n){ a[pos] = a[pos-1] + a[pos-2]; pos++; } return a ; } public static void main(String[] args) throws IOException { StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in))); while(st.nextToken() != st.TT_EOF){ System.out.println(f((int)st.nval)); } } }
相关文章推荐
- 【剑指Offer面试题】 九度OJ1388:跳台阶
- 【九度oj】1387 1388 1389 1390 斐波那契数列
- 【剑指Offer面试编程题】题目1388:跳台阶--九度OJ
- 【剑指Offer面试编程题】题目1388:跳台阶--九度OJ
- 九度OJ-题目1388:跳台阶
- 【九度OJ1389】斐波那契数列之变态青蛙跳台阶
- 九度oj-1388-跳台阶
- 【九度OJ1511】斐波那契数列
- 九度OJ题目1387斐波那契数列
- 剑指Offer - 九度1388 - 跳台阶
- 九度OJ 1075: 斐波那契数列
- C++ 花式斐波那契数列(九度OJ 1075)
- 九度OJ 1387 斐波那契数列
- 【九度】题目1388:跳台阶 && 【LeetCode】Climbing Stairs
- 九度_题目1388:跳台阶
- 题目1388:跳台阶-九度
- 九度OJ 1387 斐波那契数列
- 【剑指Offer面试题】 九度OJ1389:变态跳台阶
- 九度OJ 1075 斐波那契数列 (模拟,递归)
- 九度oj-1387-斐波那契数列