java
import java.util.Scanner;
// 刷题固定类名:Main
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// 1. 输入目标项 N
int N = scan.nextInt();
// 2. 递推核心:数组长度 = N+1(编号0~N一一对应)
long[] f = new long[N + 1];
// 3. 安全初始化(自动规避数组越界,你独创的最优写法!)
if (N >= 0) f[0] = 初始值0; // 题目规定的第0项值
if (N >= 1) f[1] = 初始值1; // 题目规定的第1项值
// 4. 递推循环:从第2项开始,到 N 结束(固定写法)
for (int i = 2; i <= N; i++) {
f[i] = 递推公式; // 按题目要求写规则
}
// 5. 输出第N项结果
System.out.print(f[N]);
scan.close();
}
}
需要改的地方 ,其他代码一行都不动:
- 初始值 ,看题目给的初始值是啥,就写啥,给了几个就写几个
- 递推公式 :题目给的计算规则(如斐波那契
f[i-1]+f[i-2])
必须要写的
在初始值前面加上if判断,确保初始值包含在输入的范围里面
如果要用到数组,数组要开N+1的空间
for循环里面的范围必须用<=