Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Reflection.Metadata.Ecma335;
- namespace PalindromicNumberTask
- {
- /// <summary>
- /// Provides static method for working with integers.
- /// </summary>
- public static class NumbersExtension
- {
- /// <summary>
- /// Determines if a number is a palindromic number, see https://en.wikipedia.org/wiki/Palindromic_number.
- /// </summary>
- /// <param name="number">Verified number.</param>
- /// <returns>true if the verified number is palindromic number; otherwise, false.</returns>
- /// <exception cref="ArgumentException"> Thrown when source number is less than zero. </exception>
- public static int IntLength(int number)
- {
- int length = 0;
- do
- {
- length++;
- number /= 10;
- }
- while (number != 0);
- return length;
- }
- public static bool IsPalindromicNumber(int number)
- {
- int length = IntLength(number);
- return IsPalindromicNumber(number, length, (int)Math.Pow(10, length - 1));
- }
- public static bool IsPalindromicNumber(int number, int length, int pow)
- {
- if (length < 2)
- {
- return true;
- }
- if (number / pow != number % 10)
- {
- return false;
- }
- pow /= 100;
- length -= 2;
- return IsPalindromicNumber(number, length, pow);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement