📅  最后修改于: 2023-12-03 15:37:13.346000             🧑  作者: Mango
回文数是指从前往后和从后往前读都是一样的数字,如121,111,1221等。在C#中,判断一个数字是否为回文数有多种方法。以下是其中的一些方法。
将数字转换为字符串后,判断字符串前半部分是否和后半部分反转后的字符串相等即可。
public static bool IsPalindrome(int num)
{
string numStr = num.ToString();
int len = numStr.Length;
for (int i = 0; i < len / 2; i++)
{
if (numStr[i] != numStr[len - 1 - i])
{
return false;
}
}
return true;
}
取数字的每一位,放入一个数组中,再判断该数组前半部分是否和后半部分反转后的数组相等。
public static bool IsPalindrome(int num)
{
if (num < 0)
{
return false;
}
List<int> digits = new List<int>();
while (num > 0)
{
digits.Add(num % 10);
num /= 10;
}
int len = digits.Count;
for (int i = 0; i < len / 2; i++)
{
if (digits[i] != digits[len - 1 - i])
{
return false;
}
}
return true;
}
将数字反转后再和原数字比较是否相等即可。
public static bool IsPalindrome(int num)
{
if (num < 0)
{
return false;
}
int reverse = 0;
int original = num;
while (num > 0)
{
reverse = reverse * 10 + num % 10;
num /= 10;
}
return original == reverse;
}
以上三种方法均可以判断一个数字是否为回文数。在实际应用中,可以根据具体情况选择不同的方法。