2025年全国青少年信息素养大赛复赛C++集训(2):寻找250(题目及解析)

2025年全国青少年信息素养大赛复赛C++集训(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) { // 持续读取输入直到找到250
        cin >> n; // 从输入流中读取一个整数到n
        cnt++;    // 每读取一个数字,计数器加1
        if(n == 250) {      // 检查当前数字是否为250
            cout << cnt;    // 输出250第一次出现的位置
            break;          // 找到后立即退出循环,结束程序
        }
    }
    return 0;
}

功能分析

  1. 输入处理
    • 使用while(true)循环持续读取输入,直到找到目标数字。
  2. 计数器机制
    • 变量cnt初始化为0,每次读取一个数字后自增,记录当前读取的是第几个数字。
  3. 条件判断
    • 每次读取数字后检查是否为250。若是,立即输出当前计数器的值(即位置),并通过break退出循环,确保只处理到第一个出现的250。
  4. 效率优化
    • 找到目标后立即终止程序,避免不必要的后续处理。

文末彩蛋:

关注并查看老师的个人主页,学习完整csp信奥赛完整系列课程: https://edu.csdn.net/lecturer/7901

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王老师青少年编程

愿你所念皆如愿,一起加油!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值