九度剑指Offer面试题9:斐波那契数列(Java题解)

来源:互联网 发布:看不见的战争 知乎 编辑:程序博客网 时间:2024/05/20 19:47

面试题9 - 1387斐波那契数列

分析:

        几个题目均为斐波那契数列及其变形,采用自底向上的方法先计算好,然后查表即可。

1387题解:

import java.util.Scanner;public class Main {public static void main(String args[]) {long[] fib = new long[71];fib[0] = 0;fib[1] = 1;for (int i = 2; i <= 70; ++i) {fib[i] = fib[i - 1] + fib[i - 2];}Scanner cin = new Scanner(System.in);int n;while (cin.hasNext()) {n = cin.nextInt();System.out.println(fib[n]);}}}

面试题9(变形) - 1388跳台阶        面试题9(变形) - 1390      矩形覆盖

1388/1390题解:

import java.util.Scanner;public class Main {public static void main(String args[]) {long[] fib = new long[71];fib[0] = 1;fib[1] = 1;for (int i = 2; i <= 70; ++i) {fib[i] = fib[i - 1] + fib[i - 2];}Scanner cin = new Scanner(System.in);int n;while (cin.hasNext()) {n = cin.nextInt();System.out.println(fib[n]);}}}
面试题9(变形) - 1389变态跳台阶

1389题解:

import java.util.Scanner;public class Main {public static void main(String args[]) {long[] ans = new long[51];ans[0] = 1;ans[1] = 1;for (int i = 2; i <= 50; ++i) {for (int j = i - 1; j >= 0; --j) {ans[i] += ans[j];}}Scanner cin = new Scanner(System.in);int n;while (cin.hasNext()) {n = cin.nextInt();System.out.println(ans[n]);}}}
        感谢阅读!

0 0
原创粉丝点击