我试图在 Codewar 上解决这个问题,但我不明白如何找到异常。
在这个 Kata 中,你将得到一个数字 n (n > 0),你的任务是返回最小的平方数 N (N > 0),使得 n + N 也是一个完美的平方。如果没有答案,则返回 -1(在 Clojure 中为 nil,在 Haskell 中为 Nothing)。
这是我写的代码:
using System;
public class SqNum
{
public static long solve(long n){
int N = 1;
long lTemp = n;
double sum, result;
bool isSqare;
while(true)
{
sum = lTemp + N;
result = Math.Sqrt(sum);
isSqare = result % 1 == 0;
if(n == 4)
{
return -1;
}
if(isSqare == true)
{
return Convert.ToInt32(result);
}
N++;
}
return -1;
}
}