试题 算法训练 大等于n的最小完全平方数

试题 算法训练 大等于n的最小完全平方数

资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
  输出大等于n的最小的完全平方数。
  若一个数能表示成某个自然数的平方的形式,则称这个数为完全平方数
  Tips:注意数据范围
输入格式
  一个整数n
输出格式
  大等于n的最小的完全平方数
样例输入
71711
样例输出
71824
数据规模和约定
  n是32位有符号整数

思路分析:
如果这个数n刚好是一个完全平方数,那么n开方后再得到的数取整再平方得到的应该就是n本身;
如果这个数n不是一个完全平方数,那么n开平方后得到的应该是一个小数,将这个小数取整后再加1即可得到我们所要的最小完全平方数;
注意事项:
由于题目中所说的n是一个有符号的数,所以要考虑n为负数的情况;
由于n是一个32位的数,而int型只能表示10位的有符号整数,所以用longlong型。

#include<iostream>
using namespace std;
#include<math.h>

int main()
{
    long long n;
    cin>>n;
    long long a,num;
    a=pow(n,0.5);
    if(n>=0)  //判断n的符号
    {
        if(n!=pow(a,2))
        num=pow(a+1,2);
        else
        num=n;
    }
    else
        num=0;
    cout<<num<<endl;
    return 0;
}

上一篇:第4章-1 生成3的乘方表 (15分) PTA-python 题解 浙大版《Python 程序设计》题目集


下一篇:练习2-11 计算分段函数[2] (10分)