我被要求使用预制回文代码编写测试程序。我们被告知不要修复代码,而是使用Test来查找问题。我花了几个小时盯着这个,我只需要方向。我发现了很多测试字符串回文和数字回文的东西,但都没有使用数字。也许这比我自己做起来容易,但是以任何方式提供的链接或指导都是非常值得赞赏的。C#:单元测试带数字的双数回文
public static Boolean isPalindrome(double num)
{
if (num >= 10000 && num < 100000)
{
double oldNum = num;
double FirstDig = num % 10;
num = num - (num % 10);
double SecondDig = num % 100;
num = num - (num % 100);
double ThirdDig = num % 1000;
num = num - (num % 1000);
double FourthDig = num % 10000;
num = num - (num % 10000);
double FifthDig = num % 100000;
num = num - (num % 100000);
FirstDig = FirstDig/10;
SecondDig = SecondDig/100;
ThirdDig = ThirdDig/1000;
FourthDig = FourthDig/10000;
FifthDig = FifthDig/100000;
double flippedNum = FirstDig + SecondDig + ThirdDig + FourthDig + FifthDig;
flippedNum = flippedNum * 100000;
if (flippedNum == oldNum)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
}
有什么理由不使用整数呢? – Phil1970
@ Phil1970嘘......这是OP应该找到的错误。或者至少有一个。 –
将值转换为字符串然后验证它是否是回文将非常简单。 – Phil1970