当前位置: 首页 > news >正文

GESP2024年3月认证C++三级( 第三部分编程题(2、完全平方数)


一、🏰 故事开始:魔法数字宝箱

小杨同学有一排数字宝石:

1 4 3 3 5

他想从里面任选两个宝石,看看它们相加后,是不是一种神奇数字:

✨ 完全平方数


二、🎯 什么叫完全平方数?

就是某个整数自己乘自己得到的数。

例如:

1 = 1×1 4 = 2×2 9 = 3×3 16 = 4×4 25 = 5×5

这些都叫完全平方数!


三、🎯 任务

1、统计有多少对数字:

i < j

满足:

a[i] + a[j]

是完全平方数!


2、🌰 样例输入

5 1 4 3 3 5

3、🧙‍♂️ 数字配对大冒险

数组位置:

1 4 3 3 5

我们每次选两个数!


4、🔍 全部组合检查


① 1 + 4 = 5

不是平方数 ❌


② 1 + 3 = 4

是平方数 ✅


③ 1 + 3 = 4

是平方数 ✅


④ 1 + 5 = 6

不是 ❌


⑤ 4 + 3 = 7

不是 ❌


⑥ 4 + 3 = 7

不是 ❌


⑦ 4 + 5 = 9

是平方数 ✅


⑧ 3 + 3 = 6

不是 ❌


⑨ 3 + 5 = 8

不是 ❌


⑩ 3 + 5 = 8

不是 ❌


5、🎉 一共找到:

3 对

6、✅ 输出

3

四、🧠 解题思路(像机器人巡逻)

我们要检查所有两两组合。


🚶 第一步:输入数字

int n; cin >> n;

🚶 第二步:存进数组

int a[1010];

🚶 第三步:双重循环找组合

外层选第一个数:

for(int i=1;i<=n;i++)

内层选第二个数:

for(int j=i+1;j<=n;j++)

这样就不会重复!


🔍 第四步:判断是不是平方数

先求和:

m = a[i] + a[j];

再开平方:

t = sqrt(m);

如果:

t*t == m

说明它是完全平方数!


五、🎁 参考程序

#include<iostream> #include<cmath> using namespace std; int main() { int n; cin >> n; int a[1010]; for(int i = 1; i <= n; i++) cin >> a[i]; int ans = 0; for(int i = 1; i <= n; i++) { for(int j = i + 1; j <= n; j++) { int m = a[i] + a[j]; int t = sqrt(m); if(t * t == m) ans++; } } cout << ans << endl; return 0; }

六、🎮 运行演示

输入:

4 2 7 9 0

检查:

2+7=9 ✅ 2+9=11 ❌ 2+0=2 ❌ 7+9=16 ✅ 7+0=7 ❌ 9+0=9 ✅

输出:

3

七、🏆 本题考点


1、✅ 数组存数据

int a[];

2、✅ 双重循环枚举组合

for + for

3、✅ sqrt 开平方

sqrt(9)=3

4、✅ 判断平方数技巧

t*t==m

5、🌟 为什么 j=i+1?

因为:

(1,4)

(4,1)

是同一对,不重复算!


八、🎉 总结

这题就是:

👉 选两个数
👉 求和
👉 判断是不是平方数
👉 统计数量


http://www.jsqmd.com/news/651145/

相关文章:

  • 百度网盘Mac版SVIP破解终极指南:一键解锁高速下载限制
  • 终极指南:如何利用Project Malmo与Atari环境打造跨平台AI实验解决方案
  • 告别手动启动:为你的MinIO服务穿上Systemd‘盔甲’(含密钥安全存储指南)
  • 【油猴】Tampermonkey脚本实战:打造智能视频连播助手
  • 终极AlgoWiki项目贡献指南:如何为这个开源知识库添砖加瓦
  • 《操作系统》_考研复试_核心概念速览与高频考点精析
  • uglifyjs安装
  • 别再用Backtrader了!用Backtesting.py+CCXT+Plotly,手把手教你搭建一个能赚钱的比特币量化交易机器人
  • CardEditor:3分钟搞定100张卡牌的批量生成神器
  • MATLAB/Simulink仿真避坑:手把手教你搭建双向Buck-Boost变换器给12V蓄电池充电
  • 5步掌握PiliPlus:开源B站客户端的极致跨平台体验
  • 5分钟快速上手Coravel:构建.NET后台任务的终极指南
  • 10个高级技巧:如何自定义React Ace编辑器的主题、语言模式与键盘绑定
  • AI技术提升SEO关键词效果的全新策略分享
  • 从王正非模型到元胞自动机:GIS林火蔓延模拟实战解析
  • 从零到一:UG NX 8.5-12.0 全版本安装实战与避坑指南
  • 【国家AI治理白皮书认证实践】:生成式AI数据回流机制的6维可信评估框架(含审计日志留存率、用户授权可追溯性、反馈延迟P99<200ms硬指标)
  • 终极指南:AutoTrain Advanced模型推理服务的水平扩展与自动扩缩容配置
  • ZCU104开发板到手第一步:保姆级Pynq镜像烧录与上电启动避坑指南
  • FPGA跨时钟域通信避坑指南:用Xilinx异步FIFO IP核解决数据丢失与亚稳态问题
  • 生成式AI多集群灰度发布失效真相:当LoRA微调版本跨集群扩散,如何用GitOps+语义校验锁死发布链路
  • JetBrains IDE试用期终极重置指南:ide-eval-resetter完整解决方案
  • 收藏备用|大模型应用学习路线(小白/程序员入门必看,附实操方向)
  • 为什么选择JWT Learn-json-web-tokens项目深度剖析
  • 【arm-gcc实战】STM32F4硬浮点优化:从编译选项到性能对比
  • GLM-Image WebUI参数调优:不同分辨率下最优步数推荐表(含RTX4090实测)
  • 从生产者-消费者到读者-写者:手把手用Python伪代码复现P、V操作四大经典例题(含避坑指南)
  • Python条形码识别终极指南:5分钟掌握pyzbar完整用法
  • 百度网盘提取码智能获取:3步快速解锁加密资源的终极指南
  • Vivado新手避坑指南:手把手教你配置Clocking Wizard IP核(从Block Design到MMCM选型)