【发布时间】:2011-08-25 14:19:42
【问题描述】:
我需要编写一个函数来返回大于其整数参数的第一个完美平方。完美平方是等于某个整数平方的整数。例如,16 是一个完美的正方形,因为 16 = 4 * 4。但是 15 不是一个完美的正方形,因为没有整数 n 使得 15 = n*n。
public static int NextPerfectSquare(int inputNumber)
{
if (inputNumber < 0) return 0;
inputNumber++;
var result = Math.Sqrt(inputNumber);
var resultnumber = (int) result;
if (resultnumber == result) return inputNumber;
resultnumber++;
return resultnumber * resultnumber;
}
是这样吗?
【问题讨论】:
-
你现在在考试吗?
-
你能解释一下“if (resultnumber == result)...”这一行的含义吗?您正在比较 double 和 int。
-
是的,我太困惑了,我认为如果 (resultnumber == result) return inputNumber;??? 不需要这些行并且返回 inputNumber 违反了返回完美正方形???
标签: c# .net perfect-square