我认为将数字顺时针(或 ccw)旋转 180 度并获得相同数字的问题。对于除 3、4 和 7 之外的所有数字,旋转后的一位是有效数字。(旋转 3 得到 ε)。我是 C# 的新手,但我设法解决了它。
public static bool MyMethod(int originalInt)
{
bool is180 = false;
if (Array.IndexOf(originalInt.ToString().ToArray(), '3') > -1 || Array.IndexOf(originalInt.ToString().ToArray(), '4') > -1 || Array.IndexOf(originalInt.ToString().ToArray(), '7') > -1)
{
return false;
}
else
{
List<int> tempList = new List<int>();
int tempInt = originalInt;
do
{
int lastDigit = tempInt % 10;
if (lastDigit == 9)
{
lastDigit = 6;
}
else if (lastDigit == 6)
{
lastDigit = 9;
}
tempInt = tempInt / 10;
tempList.Add(lastDigit);
}
while (tempInt > 0);
tempList.Reverse();
int tempInt2 = originalInt;
int lastDigit2 = 0;
foreach (int item in tempList)
{
lastDigit2 = tempInt2 % 10;
if (item == lastDigit2)
{
is180 = true;
tempInt2 = tempInt2 / 10;
}
else
{
return false;
}
}
}
return is180;
}
你能找到一种更简单的解决方法吗?谢谢你。