የፓሊንድሮም ቁጥር


የችግር ደረጃ ቀላል
ውስጥ በተደጋጋሚ ተጠየቀ የ Adobe አማዞን ብሉምበርግ ዲቦይ google MAQ የ Microsoft o9 መፍትሄዎች
ሒሳብ

የችግሩ መግለጫ

ችግሩ “Palindrome Number” የሚለው ኢንቲጀር ቁጥር እንደተሰጠዎት ይናገራል። ፓሊንደሮም ከሆነ ወይም እንዳልሆነ ያረጋግጡ። የተሰጠውን ቁጥር ወደ ገመድ ሳይቀይሩ ይህንን ችግር ይፍቱ ፡፡

የፓሊንድሮም ቁጥር

ለምሳሌ

12321
true

ማስረጃ

12321 የፓሊንደሮም ቁጥር ነው ምክንያቱም 12321 ን ስንቀይር ከተሰጠው ቁጥር ጋር ተመሳሳይ የሆነ 12321 ይሰጣል ፡፡ ስለዚህ 12321 የፓሊንደሮም ቁጥር ነው።

-12321
false

ማስረጃ

-12321 የፓሊንደሮመር ቁጥር አይደለም ምክንያቱም -12321 ን ስንቀይር 12321 ይሰጣል - ከተሰጠው ቁጥር ጋር ተመሳሳይ አይደለም። ስለዚህ -12321 የፓሊንደሮም ቁጥር አይደለም።

አቀራረብ ለ የፓሊንድሮም ቁጥር ምርመራ

በአዕምሯችን ውስጥ የሚመጣው የመጀመሪያው አቀራረብ የተሰጠውን ቁጥር ወደ ሕብረቁምፊ መለወጥ እና ፓልንድሮም ወይም አለመሆኑን ማረጋገጥ ነው ፡፡ ግን እኛ ይህንን ማድረግ አንችልም ምክንያቱም ይህ አካሄድ የተከለከለ ስለሆነ ለዚያውም ተጨማሪ ቦታ እንፈልጋለን ክር.

እንዲሁም አሉታዊ ቁጥር በጭራሽ የፓሊንደሮሜ ቁጥር አለመሆኑን አንድ አስፈላጊ ነጥብ ልብ ማለት እንችላለን ፡፡

ስለዚህ በተለየ መንገድ ለመቅረብ እንሞክራለን ፡፡ ቁጥሩን በመገልበጥ በተለዋጭ ውስጥ እናከማቸዋለን እና ከዋናው ቁጥር ጋር እኩል ከሆነ ጋር እናወዳድረው ፡፡ የተገላቢጦሹ ቁጥር ከዋናው ቁጥር ጋር እኩል ከሆነ ቁጥሩ ፓሊንደሮም ነው ሌላ እሱ ፓሊንድሮም አይደለም።

የተሰጠንን ቁጥር ለመቀልበስ የምንሰራው (ቀሪ = n% 10) ይህ የቁጥሩን የመጨረሻ አሃዝ ይሰጣል። የተገላቢጦሹን ቁጥር በ (ተቀልብሷል = ተቀልብሷል * 10 + ቀሪ) እናመነጫለን። ሁለተኛውን የመጨረሻ አሃዝ ለማግኘት ቁጥሩን በ 10 እንከፍላለን ፡፡ የ n ዋጋ ከዜሮ እስከሚበልጥ ድረስ ይህንን ሂደት እንደግመዋለን።

በመጨረሻ የመጀመሪያው ቁጥር ከተለወጠው ቁጥር ጋር እኩል ከሆነ እናነፃፅራለን ፡፡ አዎ ከሆነ ቁጥሩ የፓሊንደሮም ቁጥር ሌላ ከሆነ የፓሊንደሮም ቁጥር አይደለም።

ኮድ

ለፓሊንዲሮም ቁጥር C ++ ኮድ

#include<bits/stdc++.h>
using namespace std;
bool isPalindrome(int num){
  if(num < 0) return  false; 
  int reversed = 0, remainder, original = num;
  while(num != 0) {
        remainder = num % 10; 
        reversed = reversed * 10 + remainder; 
        num  /= 10; 
   }
   return original == reversed;
}
  
int main() 
{ 
   if(isPalindrome(12321)) 
     cout<<"Yes, it is Palindrome"; 
   else
     cout<<"No, not Palindrome"; 
}
Yes, it is Palindrome

የጃቫ ኮድ ለፓሊንድሮም ቁጥር

public class check
{	 
  static  boolean isPalindrome(int num){
   if(num < 0) return  false; 
   int reversed = 0, remainder, original = num;
   while(num != 0) {
        remainder = num % 10; 
        reversed = reversed * 10 + remainder; 
        num  /= 10; 
    }
    return original == reversed;
}
  
public static void main(String args[]){ 
    if(isPalindrome(12321)) 
      System.out.println("Yes, it is Palindrome"); 
    else
      System.out.println("No, not Palindrome"); 
  } 
} 

Yes, it is Palindrome

ውስብስብነት ትንተና

የጊዜ ውስብስብነት

አንድ ቁጥር ፓልመንድሮም ወይም አለመሆኑን ለመፈተሽ ጊዜው ውስብስብነት ነው  

የቦታ ውስብስብነት

ኦ (1) የተገላቢጦሹን ቁጥር ለማከማቸት አንድ ተጨማሪ ተለዋዋጭ እየተጠቀምን ስለሆነ ፡፡