Advertisement
yahorrr

Untitled

Sep 15th, 2022
908
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.55 KB | None | 0 0
  1. using System;
  2. using System.Reflection.Metadata.Ecma335;
  3.  
  4. namespace PalindromicNumberTask
  5. {
  6.     /// <summary>
  7.     /// Provides static method for working with integers.
  8.     /// </summary>
  9.     public static class NumbersExtension
  10.     {
  11.         /// <summary>
  12.         /// Determines if a number is a palindromic number, see https://en.wikipedia.org/wiki/Palindromic_number.
  13.         /// </summary>
  14.         /// <param name="number">Verified number.</param>
  15.         /// <returns>true if the verified number is palindromic number; otherwise, false.</returns>
  16.         /// <exception cref="ArgumentException"> Thrown when source number is less than zero. </exception>
  17.         public static int IntLength(int number)
  18.         {
  19.             int length = 0;
  20.             do
  21.             {
  22.                 length++;
  23.                 number /= 10;
  24.             }
  25.             while (number != 0);
  26.  
  27.             return length;
  28.         }
  29.  
  30.         public static bool IsPalindromicNumber(int number)
  31.         {
  32.             int length = IntLength(number);
  33.  
  34.             return IsPalindromicNumber(number, length, (int)Math.Pow(10, length - 1));
  35.         }
  36.  
  37.         public static bool IsPalindromicNumber(int number, int length, int pow)
  38.         {
  39.             if (length < 2)
  40.             {
  41.                 return true;
  42.             }
  43.  
  44.             if (number / pow != number % 10)
  45.             {
  46.                 return false;
  47.             }
  48.  
  49.             pow /= 100;
  50.             length -= 2;
  51.  
  52.             return IsPalindromicNumber(number, length, pow);
  53.         }
  54.     }
  55. }
  56.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement