牛客练习赛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;
}

猜你喜欢

转载自www.cnblogs.com/werner-yin/p/13197208.html