我需要编写一个函数,该函数返回大于其整数参数的第一个完美正方形。一个完美的正方形是一个等于一些整数平方的整数。例如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;
}
这是正确的吗?
你在考试的权利吗? – 2011-05-14 17:15:09
你能否澄清一行“if(resultnumber == result)...”的含义?你正在比较double和int。 – 2011-05-14 18:43:33
是啊我太困惑了,我认为没有这些行的需要if(resultnumber == result)return inputNumber; ???并返回inputNumber违反返回完美的方形? – 2015-08-01 14:49:28