牛客练习赛66A题解
思路
令 \(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;
}
本博客作者:Werner_Yin(https://www.cnblogs.com/werner-yin/) ,转载时请注明出处,谢谢支持!