面试题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]);
}
}
}
感谢阅读!