| 面试题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]);
}
}
}
感谢阅读!
本文详细解析了多个与斐波那契数列相关的面试题,包括基本概念、变形问题以及解决策略。通过代码实现,展示了自底向上计算斐波那契数列的方法,并对变形问题如跳台阶、变态跳台阶等进行了深入探讨。
&spm=1001.2101.3001.5002&articleId=24319765&d=1&t=3&u=0dcd20a7ee6f48ce8258641b213f9e8e)
3722

被折叠的 条评论
为什么被折叠?



