题目描述:
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。斐波那契数列的定义如下:
- 输入:
-
输入可能包含多个测试样例,对于每个测试案例,
输入包括一个整数n(1<=n<=70)。
- 输出:
-
对应每个测试案例,
输出第n项斐波那契数列的值。
- 样例输入:
-
3
- 样例输出:
-
2
-
跳台阶
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路: f(1) = 1, f(2) = 2, f(n) = f(n - 1) + f(n - 2)
package jzoffer; import java.util.Scanner; public class SolutionFibonacci { public static void main(String[] args) { System.out.println("你想查找数列的第几项:"); Scanner sc1 = new Scanner(System.in); long a = sc1.nextInt(); System.out.println(Fibonacci(a)); System.out.println("你有多少级台阶:"); Scanner sc2 = new Scanner(System.in); long b = sc2.nextInt(); System.out.println(JumpFloor(b)); } public static int Fibonacci(long n){ int former = 0; int latter = 1; if(n == 0) return 0; if(n == 1) return 1; for(int i =2;i<=n;i++){ latter += former; former = latter -former; } return latter; } public static int JumpFloor(long target) { //跳台阶也是个数列问题 int former = 1; int latter = 2; if (target == 0) return 0; if (target == 1) return 1; if (target == 2) return 2; for (int i = 3; i <= target; i ++) { latter += former; former = latter - former; } return latter; } }