线性递推通用模板

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();
    }
}

需要改的地方 ,其他代码一行都不动:

  1. 初始值 ,看题目给的初始值是啥,就写啥,给了几个就写几个
  2. 递推公式 :题目给的计算规则(如斐波那契 f[i-1]+f[i-2])

必须要写的

在初始值前面加上if判断,确保初始值包含在输入的范围里面

如果要用到数组,数组要开N+1的空间

for循环里面的范围必须用<=

相关推荐
码匠许师傅26 分钟前
【C++三方组件】Qt 概览:桌面 C++ 的事实标准与许可证三轨
开发语言·c++·qt
码匠许师傅1 小时前
【C++三方组件】POCO:跨平台系统编程全家桶
开发语言·c++
silvamux_1 小时前
10款模型写种草笔记:可发布性、返工来源与成本数据缺口复盘
java·数据库·笔记
bkspiderx2 小时前
基于Socket的广播通信及C语言实现详解
c语言·开发语言·socket·广播·socket的广播通信
小王C语言2 小时前
Qt常用控件:输入类控件,单行/多行输入框、下拉框、(日期)微调框、旋钮、滑动条
开发语言·qt
ESDWAN2 小时前
SD-WAN 主备切换为什么仍然会断网?从检测机制到会话恢复分析
开发语言·php
步行cgn2 小时前
StringHttpMessageConverter 详解:Spring MVC 中字符串读写的默认转换器
java·spring·mvc
摇滚侠2 小时前
《On Java 中文版 基础卷》阅读笔记 实现隐藏 11
java·笔记·python
1001101_QIA2 小时前
.exe does not seem to be a Qt executable.
开发语言·qt