news 2026/6/9 11:32:21

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/6/8 11:46:07

量子科技产业爆发,科大国创前瞻布局进入收获期

近日&#xff0c;中国科学家宣布&#xff0c;在可扩展量子网络研究方面取得重大突破&#xff0c;首次构建出可扩展量子中继的基本模块&#xff0c;使远距离量子网络成为现实可能。科研院所的实验室里&#xff0c;量子计算原型机正在处理比超级计算机快亿亿亿倍的计算任务&#…

作者头像 李华
网站建设 2026/6/8 15:00:43

亲测有效!企业年会扫码投票小程序实战分享

技术痛点引入 公司企业年会大屏扫码实时节目投票小程序的高并发处理与用户体验优化是当前行业普遍面临的难题。 解决方案定位 熹乐大屏互动针对这一问题提供了专业解决方案。 技术详解 该系统采用分布式架构和负载均衡技术&#xff0c;通过智能调度算法实现高效的请求处理和…

作者头像 李华
网站建设 2026/6/4 21:55:39

基于YOLOv11的农作物病虫害检测识别系统(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于YOLOv11的农作物病虫害检测识别系统(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码 项目描述 本系统是一个完整的基于YOLOv11pytorchFlaskSpringBootVueMySQL的农作物病虫害检测识别系统。以下是主要功能的简单介绍&#…

作者头像 李华
网站建设 2026/5/31 2:14:20

python新能源汽车数据分析大屏可视化系统(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

python新能源汽车数据分析大屏可视化系统(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码爬虫可用 前后端分离 技术栈&#xff1a;Django、Mysql、DataV 介绍 Python开发的汽车数据分析大屏可视化系统&#xff0c;旨在帮助用户…

作者头像 李华
网站建设 2026/6/8 1:15:44

计算机毕设java新疆IP形象NFT藏品网站 基于SpringBoot的新疆文化IP数字藏品交易平台 “丝路映象“非遗数字资产发行与展示系统

计算机毕设java新疆IP形象NFT藏品网站w6q0g9 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。在"东数西算"与"文化数字化"双重战略推动下&#xff0c;新疆丰…

作者头像 李华
网站建设 2026/6/7 22:21:01

GitHub 热榜项目 - 日榜(2026-02-08)

GitHub 热榜项目 - 日榜(2026-02-08) 生成于&#xff1a;2026-02-08 统计摘要 共发现热门项目&#xff1a; 12 个 榜单类型&#xff1a;日榜 本期热点趋势总结 本期GitHub热榜凸显AI驱动的实用开发工具成为核心趋势&#xff0c;开源社区正聚焦于提升开发效率与软件安全。O…

作者头像 李华