1. 蓝桥杯备战指南:输入输出与函数递归精讲
作为一名参加过多次蓝桥杯并取得优异成绩的选手,我深知输入输出和函数递归这两个基础知识点在竞赛中的重要性。很多同学在初学阶段容易忽视这些基础,导致在比赛中因为小细节失分。本文将系统梳理蓝桥杯常见的输入输出模式,深入解析函数传参与递归的实现原理,并提供可直接套用的代码模板。
1.1 输入输出模式全解析
1.1.1 单组测试用例处理
单组输入是最基础的模式,通常用于简单题目。例如计算(a+b)/c的值:
cpp复制#include<iostream>
using namespace std;
int main() {
int a, b, c;
cin >> a >> b >> c;
cout << (a + b) / c << endl;
return 0;
}
这种模式的要点是:
- 明确输入数据的数量和类型
- 按顺序读取所有输入
- 处理后直接输出结果
1.1.2 多组测试用例的三种处理方式
情况一:测试组数已知
当题目明确给出测试数据组数时,使用固定次数的循环:
cpp复制int n;
cin >> n;
while(n--) {
// 处理每组数据
}
典型案例:斐波那契数列问题
cpp复制#include<iostream>
using namespace std;
int main() {
int n, a;
cin >> n;
while(n--) {
cin >> a;
int x = 1, y = 1, z = 1;
while(a-- > 2) {
z = x + y;
x = y;
y = z;
}
cout << z << endl;
}
return 0;
}
情况二:测试组数未知
使用while(cin >> a >> b)模式,直到输入结束:
cpp复制int a, b;
while(cin >> a >> b) {
cout << a
