思路
令 \(sq=\sqrt x\) ,则答案必然在 $ sq^2$ 和 $ (sq+1)^2 $ 之间,两者比较一下谁离 \(x\) 最近,就是答案了。
代码
#include<bits/stdc++.h>
using namespace std;
long long x,ans1,ans2,sq;
int main(){
scanf("%lld",&x);
sq=(long long)sqrt(x);
ans1=sq*sq;
ans2=(sq+1)*(sq+1);
if(abs(ans1-x)<abs(ans2-x)) printf("%lld",ans1);
else printf("%lld",ans2);
return 0;
}