测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看
B55

数列递推:等差与等比

引入

章前总览 数列项很多,不可能为每一项单独定义变量。利用变量“以新冲旧”,一个 an 就能递推整列:每次输出当前项,再算出下一项。

本节要点:

  • 等差:后项 = 前项 + d
  • 等比:后项 = 前项 × q
  • 循环里:先输出,再更新

1 C1. 数列与递推

等差数列公差 d;等比数列公比 q(首项、公比均非 0)。常见题:求第 n 项、求前 n 项和、输出前 n 项。

程序里怎么递推

  • 定义 an,初值为首项。
  • 重复:输出 an,再 an = an + d(或 an = an * q)。
  • 注意:更新后的下一项要等下一轮才输出。

2 练习:输出等差数列

输入首项 a、项数 n、公差 d,输出 n 行。样例:3 4 3 → 3,6,9,12。

</> 参考代码

#include <iostream>
using namespace std;

int main() {
    int a, n, d;
    cin >> a >> n >> d;
    int an = a;
    for (int i = 1; i <= n; i++) {
        cout << an << endl;
        an = an + d;
    }
    return 0;
}

3 练习:输出等比数列

输入首项 a、项数 n、公比 q,输出 n 行。样例:3 4 2 → 3,6,12,24。

</> 参考代码

#include <iostream>
using namespace std;

int main() {
    int a, n, q;
    cin >> a >> n >> q;
    int an = a;
    for (int i = 1; i <= n; i++) {
        cout << an << endl;
        an = an * q;
    }
    return 0;
}
  • 与等差题唯一差别:递推式换成乘法。
小结

递推两步走:

an = 首项;
重复 n 次:输出 an → 用公式更新 an
里程碑达成:

下一节做第10章基础知识自测(for 执行次数与结果)。