zoukankan      html  css  js  c++  java
  • noip模拟赛 立方数

    题目描述
    LYK定义了一个数叫“立方数”,若一个数可以被写作是一个正整数的3次方,则这个数就是立方数,例如1,8,27就是最小的3个立方数。
    现在给定一个数P,LYK想要知道这个数是不是立方数。
    当然你有可能随机输出一些莫名其妙的东西来骗分,因此LYK有T次询问~

    输入格式(cubic.in)
    第一行一个数T,表示有T组数据。
    接下来T行,每行一个数P。

    输出格式(cubic.out)
    输出T行,对于每个数如果是立方数,输出“YES”,否则输出“NO”。

    输入样例
    3
    8
    27
    28

    输出样例
    YES
    YES
    NO

    数据范围
    对于30%的数据p<=100。
    对于60%的数据p<=10^6。
    对于100%的数据p<=10^18,T<=100。

    分析:非常水,二分一下就可以了.

    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    
    using namespace std;
    
    typedef long long ll;
    int T;
    ll p;
    
    int main()
    {
        scanf("%d", &T);
        while (T--)
        {
            bool flag = false;
            scanf("%lld", &p);
            ll l = 0, r = 1000000;
            while (l <= r)
            {
                ll mid = (l + r) >> 1;
                if (mid * mid * mid > p)
                    r = mid - 1;
                else
                    if (mid * mid * mid < p)
                        l = mid + 1;
                    else
                    {
                        flag = 1;
                        break;
                    }
            }
            if (!flag)
                printf("NO
    ");
            else
                printf("YES
    ");
        }
    
        return 0;
    }
  • 相关阅读:
    Go
    list的基本操作实现
    天梯赛练习题L2-006. 树的遍历
    部署 Fluent Bit ( td-agent-bit )
    elastalert + supervisor
    elastalert搭建
    Docker 部署 kibana( ES开启了密码认证)
    Docker 部署 elasticsearch( ES开启了密码认证)
    Python yaml模块
    Python json和pickle模块
  • 原文地址:https://www.cnblogs.com/zbtrs/p/7756802.html
Copyright © 2011-2022 走看看