OneCoder Avatar
OneCodercoderli.com · 937 篇博文
一级

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

OneCoder (lihongzheshuai)

一个中年人的自留地,记录学习 C++、GESP/NOI、Java、Python 与算法架构的心得体会。本站唯一网址:coderli.com

💬 读者留言与交流

0 条讨论
✨ 支持 Markdown 语法格式
还没有留言,快来成为第一个讨论者吧!