全国青少年信息素养大赛初赛 C++ 例题
时间: 2025-05-28 17:43:49 浏览: 31
### 全国青少年信息素养大赛初赛 C++ 例题
#### 题目一:最大公约数与最小公倍数
求两个正整数的最大公约数和最小公倍数是全国青少年信息素养大赛初赛的经典题目之一。可以通过欧几里得算法实现这一功能。
```cpp
#include <iostream>
using namespace std;
// 欧几里得算法求最大公约数
int gcd(int a, int b) {
while (b != 0) {
int temp = a % b;
a = b;
b = temp;
}
return a;
}
// 最小公倍数计算函数
int lcm(int a, int b) {
return a / gcd(a, b) * b; // 注意先除后乘以防溢出
}
int main() {
int num1, num2;
cout << "请输入两个正整数:";
cin >> num1 >> num2;
cout << "最大公约数:" << gcd(num1, num2) << endl;
cout << "最小公倍数:" << lcm(num1, num2) << endl;
return 0;
}
```
上述代码展示了如何使用欧几里得算法来寻找两数之间的最大公约数,并进一步推导其最小公倍数[^2]。
---
#### 题目二:字符串反转
字符串处理也是C++编程中的重要部分,以下是一段简单的程序用于演示如何将输入的一串字符倒序输出。
```cpp
#include <iostream>
#include <string>
using namespace std;
string reverseString(const string& str) {
string reversedStr = "";
for(auto it = str.rbegin(); it != str.rend(); ++it){
reversedStr += *it;
}
return reversedStr;
}
int main(){
string input;
cout<<"请输入一段文字:"<<endl;
getline(cin,input);
cout<<"原字符串:"<<input<<endl;
cout<<"反转后的字符串:"<<reverseString(input)<<endl;
return 0;
}
```
此段代码定义了一个名为`reverseString`的功能函数,接受标准库类型`std::string`作为参数并返回一个新的反向版本字符串对象[^1]。
---
#### 题目三:斐波那契数列生成器
斐波那契序列是一项重要的数学概念,在计算机科学领域也有广泛应用。下面给出了一种迭代方式构建指定长度Fibonacci列表的方法。
```cpp
#include <iostream>
#include <vector>
using namespace std;
vector<long long> generateFibonacciSeries(int length){
vector<long long> fib(length);
if(length >=1 )fib[0]=0;
if(length>=2) fib[1]=1;
for(int i=2;i<length;++i){
fib[i]=fib[i-1]+fib[i-2];
}
return fib;
}
int main(){
int seriesLength;
cout<<"请输入想要生成的斐波那契数列长度:"<<endl;
cin>>seriesLength;
vector<long long> fibonacciNumbers = generateFibonacciSeries(seriesLength);
cout<<"生成的斐波那契数列为:"<<endl;
for(auto &num:fibonacciNumbers){
cout<<num<<"\t";
}
cout<<endl;
return 0;
}
```
该示例说明了怎样创建一个固定尺寸的容器类实例并通过循环填充相应数值从而得到所需的斐波纳契数列[^3]。
---
### 总结
以上三个例子分别代表了几种类别的典型问题解答模式,包括但不限于算术运算、文本操控以及序列生成等方面的知识点覆盖。希望这些样例能帮助参赛者更好地理解比赛可能涉及到的内容形式和技术要点。
阅读全文
相关推荐




















