Дано трехзначное число. Напишите программу, которая
определяет, является ли число «перевертышем», т. е. числом,
десятичная запись которого читается одинаково слева направо и
справа налево.
Ответы
Можно сделать проще со строкой, но так как у меня уже написано математическое решение, могу его привести.
C# 8.0: https://ideone.com/Gtwkop
public static bool IsPolindrome(int val)
{
int len = NumberLength(val);
for (int i = 0; i < len; i++)
if (
GetDigitByIndex(val, i)
!=
GetDigitByIndex(val, len - i - 1)
)
return false;
return true;
}
public static int GetDigitByIndex(in int Num, in int Index) //Debugged
{
if (Index < 0 || Index > NumberLength(Num) - 1) throw new System.IndexOutOfRangeException();
return (Num / (int)Math.Pow(10, NumberLength(Num) - Index - 1) % 10);
}
public static int NumberLength(int num)
{
int count = 1;
for (int i = 10; (num / i) != 0; i *= 10, count++) ;
return count;
}