【机试备考】Day15-Special数 | 平方数立方数判断

题目

BUPT 2017 计算机 ProblemA
设一个正整数既是平方数又是立方数时,称之为Special数。输入包含多组测试用例,第一行输入测试数据的组数,接着在后续每行输入n的时候,请输出1到n中包含的所有Special数的个数。

示例

输入

2
1
64

输出

1
2

题解

输入n,

  1. 平方数判断
    对于开方,C/C++有相应的函数,只需判断开方后的数是否是整数(int)sqrt(n)==sqrt(n)即可

  2. 立方数判断
    利用for循环找是否有 k 3 = = n k^3==n k3==n,找到相应k则证明n是立方数,否则不是

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
    
    
    int n;
    while(cin>>n)
    {
    
    
        for(int i=0;i<n;i++)
        {
    
    
            int num,cnt=0;
            cin>>num;

            for(int j=1;j<=num;j++)
            {
    
    
                //判断平方数
                if((int)sqrt(j)==sqrt(j))
                {
    
    
                    //判断立方数
                    for(int k=1;k*k*k<=j;k++)
                    {
    
    
                        if(k*k*k==j)
                            cnt++;
                    }
                }
            }
            cout<<cnt<<endl;
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_43417265/article/details/113549619