news 2026/5/10 7:04:36

GESP2025年6月认证C++二级( 第三部分编程题 1、数三角形)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GESP2025年6月认证C++二级( 第三部分编程题 1、数三角形)


《数三角形的秘密》


📖 一、故事背景:三角形王国 🏰

1、在三角形王国里,有一种特别的三角形,叫做:

直角三角形


2、它有:

  • 两条直角边(互相垂直 📐)

  • 一条斜边


3、国王提出了一个问题:

👉 如果两条直角边的长度都是不超过 N 的正整数
👉有多少个直角三角形,它们的面积是整数?


4、我们的任务:
🎯帮国王数清楚,一共有多少个这样的三角形!


🧠 二、先别急写代码,先想清楚!

1️⃣ 面积公式(先搞清楚)


2️⃣ 什么时候面积是“整数”?

(1)面积是整数 ⇔

a × b 是 偶数

(2)📌 因为:

  • 偶数 ÷ 2 = 整数

  • 奇数 ÷ 2 = 0.5(不是整数)


🧩 三、把问题拆成“小任务”

1、🎯 总目标

数一数有多少组(a, b),满足:

  • a、b 是正整数

  • a ≤ N

  • b ≤ N

  • 面积是整数


2、⚠️ 重要规则

题目说:

两个三角形(a, b)(b, a)同一个

也就是说:

👉3 和 4
👉4 和 3

只能算一次


3、✅ 解决办法

我们规定:

b 从 a 开始枚举

这样就不会重复数。


🧮 四、用小例子先算一遍

🌟 假设 N = 3

所有可能的(a, b)

aba×b面积合格?
1110.5
1221
1331.5
2242
2363
3394.5

👉 一共3 个


🧠 五、把思路翻译成“程序语言”

采用枚举算法:

两层 for 循环枚举直角边
如果a * b是偶数,就计数加 1


💻 六、参考程序

#include <iostream> using namespace std; int main() { int N; cin >> N; int cnt = 0; // 用来数三角形的数量 // 枚举第一条直角边 for (int a = 1; a <= N; a++) { // 枚举第二条直角边(从 a 开始,避免重复) for (int b = a; b <= N; b++) { // 判断面积是否为整数 if ((a * b) % 2 == 0) { cnt++; } } } cout << cnt << endl; return 0; }

🧩 七、关键代码逐句讲解

🔹 1. 为什么b = a开始?

for (int b = a; b <= N; b++)

👉 防止(3,4)(4,3)重复计算
👉这是得分的关键细节!


🔹 2. 为什么只判断(a * b) % 2 == 0

if ((a * b) % 2 == 0)

因为:

  • 偶数 ÷ 2 = 整数

  • 面积就一定是整数

不用真的去算面积,省时间、省麻烦!


🎯 八、考试常见扣分点

❌ 错误 1:内循环,写成b = 1,从1开始,有重复
→ 会重复算

❌ 错误 2:判断面积为整数, 判断条件写成赋值“=”!

(a * b) % 2 = 0,

→ 会出错

❌ 错误 3:cnt 忘记 赋初值为 0,cnt++结果就会错!


🧩九、附:枚举算法通用模版:


🟡 模板 1:从 1 数到 N(最基础)

1、🎒 小故事

老师要点名,从 1 号到 N 号,一个都不漏。


2、💻 模板代码

for (int i = 1; i <= N; i++) { // 用 i 做事情 }

3、🌟 常见用途

  • 数数

  • 累加

  • 判断奇偶


🟡 模板 2:区间枚举(L 到 R)

1、🎒 小故事

从第 L 本书,看到第 R 本书。


2、💻 模板代码

for (int i = L; i <= R; i++) { // 检查 i }

🟡 模板 3:双重枚举(两层 for)

1、🎒 小故事

每一对都试试


2、💻 模板代码

for (int i = 1; i <= N; i++) { for (int j = 1; j <= M; j++) { // (i, j) 是一组情况 } }

3、🌟 典型用途

  • 表格

  • 两个数的组合

  • 二维问题


🟡 模板 4:防止重复的双枚举(非常重要 ⭐)

1、🎒 小故事

选两个人握手,A 和 B、B 和 A 是同一次


2、💻 模板代码

for (int i = 1; i <= N; i++) { for (int j = i; j <= N; j++) { // (i, j) 不重复 } }

3、🌟 考试常见

  • 本题三角形判断

  • 配对问题


🟡 模板 5:带条件的枚举(if 判断)

1、🎒 小故事

只数“戴帽子的小朋友” 🎩


2、💻 模板代码

for (int i = 1; i <= N; i++) { if (条件) { // 满足条件才做事 } }

3、🌟 例子

if (i % 3 == 0)

🟡 模板 6:枚举 + 计数器(考试最爱)

1、🎒 小故事

看到一个符合要求的,就在本子上打 ✔


2、💻 模板代码

int cnt = 0; for (int i = 1; i <= N; i++) { if (条件) { cnt++; } }

🟡 模板 7:枚举 2 的幂

1、🎒 小故事

数字会“翻倍生长” 🌱


2、💻 模板代码

for (int x = 1; x <= N; x *= 2) { // x = 1, 2, 4, 8, ... }

🟡 模板 8:枚举数组(数组索引)

1、🎒 小故事

检查一排盒子里的东西 📦


2、💻 模板代码

for (int i = 0; i < n; i++) { // a[i] }

🟡 模板 9:枚举字符串中的字符

1、🎒 小故事

一个字母一个字母读 📖


2、💻 模板代码

for (int i = 0; i < s.length(); i++) { char c = s[i]; }

🟡 模板 10:枚举二维数组(二维数组索引)

1、🎒 小故事

走棋盘 ♟️


2、💻 模板代码

for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { // a[i][j] } }

🧠 枚举算法“必背三句话”

📌
1️⃣ 枚举 = 不偷懒,一个一个来
2️⃣ for 写对范围,成功一半
3️⃣ 重复问题 → 第二层从 i 开始


🎯 GESP考试“万能枚举套路”

读题 ↓ 想清楚:枚举什么? ↓ for 循环写出来 ↓ if 判断条件 ↓ cnt++ ↓ 输出

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/3 3:21:49

洁净间施工,选错后悔10年!

洁净间施工&#xff0c;选错后悔10年&#xff01;——一份来自行业内部的深度避坑指南朋友们&#xff0c;大家好。今天咱们来聊一个听起来有点“高冷”&#xff0c;但实际上和很多行业未来发展都息息相关的话题——洁净间洁净厂房设计施工。你可能觉得这是芯片厂、药厂才关心的…

作者头像 李华
网站建设 2026/4/25 19:17:09

【YOLOv13多模态创新改进】全网独家复现创新 | TGRS 2025 | 引入MROD-YOLO的 MJRNet 多模态联合表征网络模块,对可见光与红外信息的早期深度融合、充分发挥多模态互补优势

一、本文介绍 🔥本文给大家介绍使用 MJRNet 多模态联合表征网络模块改进 YOLOv13 多模态目标检测模型,其核心作用是在网络前端实现高质量的多模态联合表征学习,通过对可见光与红外信息的早期深度融合,为后续检测提供信息充分且对齐良好的输入特征。MJRNet 利用全局上下文…

作者头像 李华
网站建设 2026/5/7 22:23:04

用SimAuto API批量修改风机参数

基于powerworld风电场仿真与计算打开PowerWorld的瞬间&#xff0c;系统图里密密麻麻的节点开始跳动。鼠标悬停在某个220kV母线上&#xff0c;实时电压值显示为1.032pu——这个数字背后藏着整个风电场的动态平衡。最近在折腾某30台风机的接入项目&#xff0c;发现传统潮流计算根…

作者头像 李华
网站建设 2026/5/1 15:20:51

CANN ATC工具深度解析:模型转换从框架到NPU的桥梁

CANN ATC工具深度解析&#xff1a;模型转换从框架到NPU的桥梁 摘要 本文深入解析华为CANN生态中的关键组件ATC&#xff08;Ascend Tensor Compiler&#xff09;工具&#xff0c;该工具作为AI模型从训练框架到昇腾NPU硬件的重要桥梁。文章从ATC的核心功能出发&#xff0c;详细…

作者头像 李华
网站建设 2026/4/23 10:27:56

美团收购叮咚,叮咚梁昌霖选择“华丽退场”!

2026年2月5日&#xff0c;美团发布公告宣布&#xff0c;以约7.17亿美元的对价完成了对叮咚买菜中国业务100%股权的收购。此举不仅是美团在生鲜赛道布局的“再下一城”&#xff0c;更标志着生鲜电商行业独立时代的结束&#xff0c;而叮咚买菜的创始人——退役老兵梁昌霖&#xf…

作者头像 李华
网站建设 2026/4/23 11:52:11

真的太省时间!千笔·专业降AIGC智能体,口碑爆棚的降AI率工具

在AI技术迅速发展的今天&#xff0c;越来越多的学生开始借助AI工具辅助论文写作&#xff0c;以提高效率、优化内容。然而&#xff0c;随着学术审查标准的不断提高&#xff0c;AI生成内容的痕迹越来越容易被识别&#xff0c;导致论文AI率超标&#xff0c;甚至影响查重结果。面对…

作者头像 李华