news 2026/10/22 12:31:24

GESP2025年6月认证C++二级( 第三部分编程题 2、幂和数)

作者头像

张小明

前端开发工程师

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


《幂和数王国的秘密》


📖 一、故事背景:幂和数王国 🏰

1、在数字大陆上,有一种特别神奇的数字,叫做——

✨幂和数


2、国王规定:

如果一个数N
可以写成
两个 2 的幂相加

比如:
N = 2^a + 2^b

那么,N 就是幂和数!


3、你的任务是:

🎯在一个范围 [L, R] 里,找出一共有多少个幂和数


🧠 二、先把“幂”讲明白(超级关键)

1、什么是2 的幂?

就是一直乘 2:

写法数字
2⁰1
2¹2
2²4
2³8
2⁴16
2⁵32

2、📌 记住一句话:

从 1 开始,一直 ×2


🧩 三、幂和数到底长什么样?

🌟 举几个例子

  • 3 = 1 + 2 → ✔ 幂和数

  • 5 = 1 + 4 → ✔

  • 6 = 2 + 4 → ✔

  • 7 ❌(不是两个 2 的幂相加)


🧠 四、题目真正让你干什么?

1、题目输入:

L R

2、意思是:

👉 从L 到 R
👉 数一数
👉 有多少个数
👉 可以写成2^a + 2^b


🧩 五、千万不要用“笨方法”!

❌ 错误思路(同学们最容易想到)

对每个数 N
再去试所有 a、b
看能不能拼出来

❌ 太慢!
❌ 太乱!
❌ 容易写炸!


🌟 六、聪明魔法师的思路

🎯 换个角度想!

👉不是去猜 N
👉 而是:

先生成所有的2^a + 2^b

再看看它落不落在[L, R]里


🧠 七、怎么生成所有的2^a + 2^b?

魔法规则

  • a 从1开始,一直 ×2 (外循环)

  • b 从a开始,一直 ×2 (内循环)

  • 只要和<= R,就继续


🧮 八、用小例子走一遍(方便理解)

1、假设输入:

L = 2, R = 10

2、所有 2 的幂:

1, 2, 4, 8

3、组成幂和数:

aba+b
112
123
145
189
224
246
2810
448


4、👉 在 [2,10] 里的有:
2,3,4,5,6,8,9,10

👉 一共8 个


💻 九、参考程序

#include <iostream> using namespace std; int main() { int L, R; cin >> L >> R; int cnt = 0; // 第一个 2 的幂 for (int a = 1; a <= R; a *= 2) { // 第二个 2 的幂(从 a 开始,防止重复) for (int b = a; b <= R; b *= 2) { int sum = a + b; // 如果在范围内,就计数 if (sum >= L && sum <= R) { cnt++; } } } cout << cnt << endl; return 0; }

🧩 十、逐句拆解

1、🔹 为什么a *= 2?

for (int a = 1; a <= R; a *= 2)

👉 表示:
1 → 2 → 4 → 8 → 16 …


2、🔹 为什么b = a开始?

for (int b = a; b <= R; b *= 2)

👉 防止:

  • 1 + 2

  • 2 + 1

被算两次 ❗


🚨 十一、考场最容易扣分的 4 个坑

❌ 写成a++(直接错)
❌b从 1 开始(会重复)
❌ 忘了判断sum <= R
❌ 用pow()(浮点数,危险)


🏆 十二、本题总结

📌

  • 幂 = 从 1 开始 ×2

  • 幂和数 = 两个幂相加

  • 思路:先造,再筛

  • 防重复:第二个从第一个开始


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

内核网络组件 AFD 与 Kernel Socket 跨平台架构分析

摘要随着云计算和网络服务的发展&#xff0c;操作系统的网络处理能力成为关键指标。本文深入探讨了 Windows 和 Linux 两大操作系统的内核网络组件差异&#xff0c;重点分析了 Windows 中的异步文件描述符&#xff08;Asynchronous File Descriptor, AFD&#xff09;与 Linux 中…

作者头像 李华
网站建设 2026/10/21 11:59:53

Kubernetes集群恢复测试:从理论到实战的深度解析

在云原生时代&#xff0c;Kubernetes已成为容器编排的事实标准&#xff0c;其高可用性与弹性能力支撑着企业级应用的稳定运行。然而&#xff0c;集群故障的突发性与复杂性始终是悬在运维人员头顶的达摩克利斯之剑。 一、故障模拟的底层逻辑&#xff1a;从混沌工程到确定性恢复…

作者头像 李华
网站建设 2026/10/20 9:36:40

vijos本地搭建教程和下载地址

Vijos是一个在信息学竞赛圈内广为人知的在线评测系统&#xff08;Online Judge&#xff09;。对于许多选手和教练来说&#xff0c;如果能将其下载并部署在本地服务器或个人电脑上&#xff0c;将极大提升训练和教学的灵活性与效率。本文将围绕如何找到并获取Vijos系统&#xff0…

作者头像 李华
网站建设 2026/10/22 7:47:36

Agent Skills完全指南:从零基础到精通,收藏这篇就够了!

文章介绍Agent Skills作为AI大模型的应用技术&#xff0c;是一种将知识和流程打包成可重用技能的开放标准。与传统提示词相比&#xff0c;它提供稳定、可复用和可传承的AI工作方式&#xff0c;解决了"提示词反复交接"问题。通过周报生成、上线验收和设计评审三个案例…

作者头像 李华
网站建设 2026/10/22 1:19:26

MonkeyCode提供GLM-4.7无限免费使用!!

如果你最近在关注 AI 编程工具&#xff0c;大概率已经被各种“强大”“颠覆”“解放生产力”的宣传刷过屏。但真正用下来&#xff0c;很多人都会遇到一个现实问题&#xff1a; 好用的模型要钱&#xff0c;免费的模型不敢用&#xff1b;能写 Demo&#xff0c;但进不了真实项目。…

作者头像 李华