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 执行次数与结果)。