資源限制
時間限制:1.0s 內存限制:256.0MB
問題描述
輸出大等於n的最小的完全平方數。
若一個數能表示成某個自然數的平方的形式,則稱這個數爲完全平方數
Tips:注意數據範圍
輸入格式
一個整數n
輸出格式
大等於n的最小的完全平方數
樣例輸入
71711
樣例輸出
71824
數據規模和約定
n是32位有符號整數
解題思路:
當我看到這題時,第一想法是循環,直到找到平方大於等於n的,但是運行超時。於是想到一個更加便捷地方法,既然這個平方就在n的附近,不如直接將n根號,比根號的數相等或者大於一那便是最小完全平方數了,相等的情況是n恰好是最小完全平方數。當然還要注意n小於0的情況,代碼如下:
#include<bits/stdc++.h>
using namespace std;
int main() {
long long m, n;
cin >> n;
m = sqrt(n * 1.0);
if (n < 0){
cout << "0" << endl;
}
else if (m * m == n){
cout << n << endl;
}
else cout << (m + 1) * (m + 1) << endl;
return 0;
}
感謝這位博主的指導 https://blog.csdn.net/weixin_44237551/article/details/103427047