2025年全国青少年信息素养大赛复赛集训(2):寻找250(题目及解析)
2025年全国青少年信息素养大赛复赛集训(2):寻找250(题目及解析)
*题目描述*
有人向你扔了一串数…… 而你必须从这一串数字中找到“250”这个高大上的感人数字。
时间限制:1000
内存限制:65536
*输入*
输入在一行中给出不知道多少个绝对值不超过1000的整数,其中保证至少存在一个“250”。(数的总个数不超过3000)
*输出*
在一行中输出第一次出现的“250”是对方扔过来的第几个数字(计数从1开始)。题目保证输出的数字在整型范围内。
*样例输入*
888 666 123 -233 250 13 250 -222
*样例输出*
5
*AC代码*
// 包含所有标准库的头文件,简化代码编写
#include<bits/stdc++.h>
using namespace std;int n, cnt = 0; // n存储当前读取的数字,cnt记录当前是第几个数字(从1开始)int main() {while(true) { // 持续读取输入直到找到250cin >> n; // 从输入流中读取一个整数到ncnt++; // 每读取一个数字,计数器加1if(n == 250) { // 检查当前数字是否为250cout << cnt; // 输出250第一次出现的位置break; // 找到后立即退出循环,结束程序}}return 0;
}
功能分析
- 输入处理
- 使用
while(true)
循环持续读取输入,直到找到目标数字。
- 使用
- 计数器机制
- 变量
cnt
初始化为0,每次读取一个数字后自增,记录当前读取的是第几个数字。
- 变量
- 条件判断
- 每次读取数字后检查是否为250。若是,立即输出当前计数器的值(即位置),并通过
break
退出循环,确保只处理到第一个出现的250。
- 每次读取数字后检查是否为250。若是,立即输出当前计数器的值(即位置),并通过
- 效率优化
- 找到目标后立即终止程序,避免不必要的后续处理。
文末彩蛋:
关注并查看老师的个人主页,学习完整csp信奥赛完整系列课程: https://edu.csdn.net/lecturer/7901