输入一个数,返回最接近这个数的完全平方数。

请教!!!

开方,向下取整和向上取整再平方,比较那个和这个数差小,如果开方后是整数,则这个数本书就是平方数

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