GESP2025年9月认证C++三级真题与解析(编程题1(数组清零))

GESP2025年9月认证C++三级真题与解析(编程题1(数组清零))

一、先看原题:


二、题目解析


1、先不看代码,先讲故事 🧸

(1)🧸 故事背景

小 A 有一排 能量水晶,每一块水晶都有能量值:

[0, 2, 3, 4]

(2)他的目标只有一个:

👉 把所有水晶的能量变成 0

(3)但他不能随便减,必须按规定操作。


2、一次“合法操作”是怎样的?⚙️

每一轮操作,小 A 都要 严格做 3 件事


✅ 第 1 步:找“最强水晶”

  • 在数组里找 最大的数
  • 如果有多个一样大 👉 选下标最大的那个

📌 例如:

[0,2, 3, 4] → 最大是 4(下标 3)

✅ 第 2 步:找“最弱但还活着的水晶”

  • 所有不为 0 的数
  • 最小的那个

📌 例如:

[0, 2, 3, 4] → 最小非 0 是 2, 因为2是活着的。

✅ 第 3 步:做减法!

  • 用:
最大值 -= 最小非 0 值

📌 所以:

4 - 2 = 2

数组变成:

​​​​​​​[0,2, 3, 2]

👉 这算 1 次操作


 ✅ 第 4 步:一直重复,直到最后停止🛑

🔚 当数组里所有数都变成 0,就停!

[0,0, 0, 0]

题目保证:
👉 一定能在有限次内变成全 0


3、本题可用模拟算法🧠

(1)模拟算法基本步骤。

模拟算法:

初始化状态变量; for (时间或次数) { 根据规则改变状态; if (满足条件) { 修改状态; } } 输出结果;

(2) 本题三个核心步骤:


🌟 步骤 1:用 while 循环

👉 “只要还有非 0,就继续干!”
while (true) { // 找最大 // 如果最大是 0 → break }

🌟 步骤 2:每一轮都“扫一遍数组”

因为你要:

  • 找最大值
  • 找最小非 0

👉 所以每一轮都要用 for 把数组看一遍


🌟 步骤 3:操作次数要数清楚

cnt++; // 每成功减一次,就 +1

4、参考程序

 ✅代码1

#include <iostream> using namespace std; int main() { int n; cin >> n; int a[105]; for (int i = 1; i <= n; i++) { cin >> a[i]; } int cnt = 0; // 记录操作次数 while (true) { // ① 找最大值的下标(如果相同,取下标大的) int maxPos = 1; for (int i = 1; i <= n; i++) { if (a[i] >= a[maxPos]) { maxPos = i; } } // 如果最大值已经是 0,说明全清零了 if (a[maxPos] == 0) break; // ② 找最小的非 0 值 int minVal = a[maxPos]; for (int i = 1; i <= n; i++) { if (a[i] > 0 && a[i] < minVal) { minVal = a[i]; } } // ③ 做减法 a[maxPos] -= minVal; cnt++; // 操作次数 +1 } cout << cnt << endl; return 0; } 

 ✅代码2

#include <iostream> #include <algorithm> using namespace std; int main() { int n; cin >> n; int a[105]; for (int i = 0; i < n; i++) { cin >> a[i]; } int cnt = 0; // 操作次数 while (true) { // ① 排序 sort(a, a + n); // ② 如果最大值已经是 0,说明全清零 if (a[n - 1] == 0) break; // ③ 找最小的非 0 int minNonZero = 0; for (int i = 0; i < n; i++) { if (a[i] > 0) { minNonZero = a[i]; break; } } // ④ 用最大值减最小非 0 a[n - 1] -= minNonZero; // ⑤ 计数 cnt++; } cout << cnt << endl; return 0; } 

5、本题用到的知识点:

考点是否重要
数组遍历⭐⭐⭐
while 循环⭐⭐⭐
最大 / 最小查找⭐⭐⭐
规则理解能力⭐⭐⭐⭐
模拟能力⭐⭐⭐⭐


6、本题注意的 几 个关键问题 🧩


1️⃣ 每一步操作,是否和题目完全一致?

(1)常见错误 ❌

  • 一次改了多个元素
  • 偷偷合并了两次操作

 (2)  正确做法 ✅

  • 一次 while / for = 一次题目操作

📌 在这道题中:

a[maxPos] -= minVal; cnt++; 

 (3) ✔ 一步一步来


2️⃣ 操作顺序不能乱 ⚠️

先找谁?
再做什么?
最后判断什么?

顺序一错,结果就错。

例子 🌰

题目说:

找最大值再找最小非 0再减

❌ 先减再找
❌ 一起找


3️⃣ 循环什么时候结束,一定要想清楚 🛑

(1)  常见错误

  • 死循环
  • 少算一次
  • 多算一次

(2) 正确姿势

结束条件,一定来自“题目规则”

本题中:

if (a[maxPos] == 0) break; 

✔ 这是题目中的要求


Read more

Coze扣子「百套AI工作流」模板合集

Coze扣子「百套AI工作流」模板合集

💰 价值5899元的市面热卖模板全公开! 📦 142MB收录100+款扣子工作流,覆盖多领域爆款逻辑! 🎯 免费用顶级模板,省下高价学费,快速切入AI短视频赛道! 🔥 扣子教程-爆款历史讲解 * 文件大小: 126MB * 内容特色: 用AI解锁历史流量密码!精华教程,手把手教你将枯燥历史变成爆款视频 * 适用人群: 知识区UP主和内容创作者 * 核心价值: 让历史故事也能狂揽点赞! * 下载链接: 夸克网盘分享 🎨 AI工作流一键生成:简笔画心理学 * 文件大小: 492MB * 内容特色: 保姆级教程!条条爆款+百分百原创,小白5分钟上手心理学内容创作 * 适用人群: 心理学内容创作者 * 核心价值: 轻松月入过万!融合简笔画与心理学知识,视频模板可直接套用 * 下载链接: 夸克网盘分享 ⭐ 扣子小人国一键生成工作流 * 文件大小: 15.5MB * 内容特色: 轻量但强悍!热门短视频"小人国"特效独家源码,一键生成奇幻视觉大片 * 适用人群:

By Ne0inhk
clawdbot无痛升级openclaw,飞书变个人AI助理保姆级教程

clawdbot无痛升级openclaw,飞书变个人AI助理保姆级教程

大家好, 我是阿星👋! 上期我们已经教大家如何用本机+clawdbot在飞书上部署个人助理。clawdbot接入飞书阿里云,立即拥有24小时AI助理贾维斯 但是clawdbot又改名为OpenClaw了旧的已经不维护了。 新版还加了webui功能可以可视化进行配置。所以我们肯定是要升级的。 而且新版还可以比较方便安装一下下面功能,还能做功能拓展: 在新版,你可以优先勾选以下几个最实用的技能 所以,如果你想实现下面这些功能,可以跟着下面步骤升级到2026.2.9 * 📝 apple-notes / ⏰ apple-reminders : 这样你可以直接在飞书里跟机器人说“帮我记个笔记”或者“下午三点提醒我开会”。 * 🐙 github : 勾选这个可以让你通过机器人查询仓库动态或管理 Issue。 * 📸 camsnap : 很酷的功能,可以让机器人调用你 MacBook 的摄像头拍照并传给你(适合远程监控)。 * 📨 imsg : 允许机器人帮你收发 iMessage 短信。 * 🧩 clawhub : 核心组件,建议保留。 第一步:清理旧门户

By Ne0inhk
【人工智能】deepseek R1模型在蓝耘智算平台的搭建与机器学习的探索

【人工智能】deepseek R1模型在蓝耘智算平台的搭建与机器学习的探索

📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀ 蓝耘智算平台 * deepseek R1简介与优点 * 蓝耘智算平台 * 蓝耘智算平台简介 * 蓝耘智算平台优势 * deepseek R1模型在蓝耘智算平台的搭建 * 模型使用与机器学习的探索 * 总结 前言:在人工智能技术日新月异的时代,AI 模型的不断优化创新,诞生了许多优秀的AI模型,DeepSeek就是后起之秀,DeepSeek一鸣惊人,凭借其独特的技术优势和创新特性,在AI的浩瀚星空中犹如一颗璀璨的明星,散发着耀眼的光芒。它不仅在数据处理、模式识别等方面表现出色,还具备高效的学习能力和适应性,为众多应用场景带来了革命性的变化。 接下来,我们将深入剖析 DeepSeek 的诸多优点,并详细探讨如何利用蓝耘智算平台搭建并优化我们的 DeepSeek R1 模型。蓝耘智算平台作为业界领先的高性能计算平台,为AI模型的研发与部署提供了强大的支持。通过该平台,我们可以充分利用其丰富的计算资源和高效的数据处理能力,为 DeepSeek R1 模型的训练与优化

By Ne0inhk

Obsidian+Claude Code打造本地AI知识库

Claudian + Obsidian Skills 1. 核心组件 * Claudian: Obsidian 第三方插件(暂未上架官方市场),适配 Claude Code。 * Obsidian Skills: 由 Obsidian CEO (Kepano) 发布的 Skill 包,赋予 AI 处理 Canvas、Markdown 及数据库的能力。 2. 环境部署流程 2.1 安装 Claudian 插件 (手动旁加载) 1. 获取文件: 访问 GitHub 仓库 claudian,下载以下三个核心文件: * main.js * manifest.json * styles.css 2. 放置插件:

By Ne0inhk