一级
C++ 算法考级专栏
真题分析、矩阵探测、递归回溯与基础语法
🎨 视觉封面【GESP】C++一级真题(202406)luogu-B4001,立方数
📅 2024-11-07·✍️ OneCoder·计算中...·⏱️ 3 分钟
#GESP#C++#基础语句
2024年6月GESP一级真题。循环类问题。
luogu-B4001
题目要求
描述
小杨有一个正整数 n,他想知道 n 是否是一个立方数。一个正整数 n 是立方数当且仅当存在一个正整数 x 满足 x*x*x=n 。
输入
第一行包含一个正整数 n。
输出
如果正整数 n 是一个立方数,输出 Yes,否则输出 No。
输入样例-1
8
输出样例-1
Yes
输入样例-2
9
输出样例-2
No
题目分析
通过循环从1到n的每一个数进行检查
- 定义一个标志变量用来保存在循环中是否找到了立方根,默认为否
- 通过 i * i * i == n 来判断n是否是立方数,如果是,修改标志变量值为是,直接退出循环
- 如果循环结束,判断条件均为成立则,则标志变量值未改变。
- 最后,根据标志变量的值来判断输出Yes/No即可。
示例代码
CPP
#include <iostream>
using namespace std;
int main() {
int n; // 定义变量n来存储输入的正整数
cin >> n; // 从标准输入流中读取正整数n
int u = 0; // 初始化计数器u为0,用于记录是否找到立方根
for (int i = 1; i <= n; i++) { // 从1开始遍历到n
if (i * i * i == n) { // 检查i是否是n的立方根
u += 1; // 如果是,则计数器u加1
} else {
u += 0; // 如果不是,则计数器u不变
}
}
if (u == 0) { // 如果计数器u为0,则n不是立方数
cout << "No"; // 输出No
} else { // 如果计数器u不为0,则n是立方数
cout << "Yes"; // 输出Yes
}
return 0; // 程序返回0,表示执行成功
}
💡 OneCoder 资源指引
所有代码开源上传至 GitHub:yummy-code 仓库 · GESP 专题站:GESP WIKI
🤝 技术交流与答疑
欢迎加入:C++ GESP/CSP 考级答疑群(688906745) 与 Java/Python交流群(982860385),点击可直接加群。
📚
猜你想读 · 相关文章推荐
OneCoder (lihongzheshuai)
一个中年人的自留地,记录学习 C++、GESP/NOI、Java、Python 与算法架构的心得体会。本站唯一网址:coderli.com
💬 读者留言与交流
还没有留言,快来成为第一个讨论者吧!