请教!!!
开方,向下取整和向上取整再平方,比较那个和这个数差小,如果开方后是整数,则这个数本书就是平方数
class Pow2Num {
public int numPow2(int n) {
int q = (int) Math.sqrt(n);
if (Math.pow(q, 2) == n) {
return n;
}
int ans = 0;
if (Math.pow(q, 2) < n) {
if ((n - Math.pow(q, 2)) < (Math.pow(q + 1, 2) - n)) {
ans = (int) Math.pow(q, 2);
} else {
ans = (int) Math.pow(q + 1, 2);
}
}
return ans;
}
public static void main(String[] args) {
Pow2Num sol = new Pow2Num();
int n = 388;
System.out.println(sol.numPow2(n));
}
}
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632