පාලින්ඩ්‍රෝම් අංකය


දුෂ්කරතා මට්ටම පහසු
නිතර අසනු ලැබේ ඇෙබෝ ඇමේසන් බ්ලූම්බර්ග් DBOI ගූගල් MAQ මයික්රොසොෆ්ට් o9 විසඳුම්
ගණිතය

ගැටළු ප්රකාශය

“පාලින්ඩ්‍රෝම් අංකය” ගැටලුවේ සඳහන් වන්නේ ඔබට පූර්ණ සංඛ්‍යාවක් ලබා දී ඇති බවයි. එය පාලින්ඩ්‍රෝම් ද නැද්ද යන්න පරීක්ෂා කරන්න. දී ඇති අංකය නූලක් බවට පරිවර්තනය නොකර මෙම ගැටළුව විසඳන්න.

පාලින්ඩ්‍රෝම් අංකය

උදාහරණයක්

12321
true

පැහැදිලි කිරීම

12321 යනු පාලින්ඩ්‍රෝම් අංකයකි, මන්ද අප 12321 ආපසු හරවන විට එය 12321 ලබා දෙන අතර එය ලබා දී ඇති සංඛ්‍යාවට සමාන වේ. එබැවින් 12321 යනු පාලින්ඩ්‍රෝම් අංකයකි.

-12321
false

පැහැදිලි කිරීම

-12321 යනු පාලින්ඩ්‍රෝම් අංකයක් නොවන නිසා අප -12321 ආපසු හරවන විට එය 12321- ලබා දෙයි, එය දී ඇති අංකයට සමාන නොවේ. එබැවින් -12321 යනු පාලින්ඩ්‍රෝම් අංකයක් නොවේ.

සඳහා ප්‍රවේශය පාලින්ඩ්‍රෝම් අංක පරීක්ෂා කිරීම

අපගේ මනසට එන පළමු ප්‍රවේශය නම් දී ඇති අංකය නූලක් බවට පරිවර්තනය කර එය පාලින්ඩ්‍රෝම් ද නැද්ද යන්න පරීක්ෂා කිරීමයි. නමුත් අපට මෙය කළ නොහැක්කේ මෙම ප්‍රවේශය සීමා කර ඇති නිසා සහ ඒ සඳහා අපට අමතර ඉඩක් අවශ්‍ය වන බැවිනි පේළියකි.

Negative ණ සංඛ්‍යාවක් කිසි විටෙකත් පාලින්ඩ්‍රෝම් අංකයක් නොවන බව අපට වැදගත් කරුණක් නිරීක්ෂණය කළ හැකිය.

එබැවින් අපි එය වෙනත් ආකාරයකින් ප්රවේශ වීමට උත්සාහ කරමු. අපි අංකය ආපසු හරවා එය විචල්‍යයක ගබඩා කර එය මුල් අංකයට සමාන නම් සංසන්දනය කරමු. ආපසු හරවන ලද අංකය මුල් අංකයට සමාන නම් එම සංඛ්‍යාව පාලින්ඩ්‍රෝමය නම් එය පාලින්ඩ්‍රෝමය නොවේ.

දී ඇති අංකය ආපසු හැරවීම සඳහා අපි ඉටු කරන්නෙමු (ඉතිරිය = n% 10) මෙය සංඛ්‍යාවේ අවසාන ඉලක්කම් ලබා දෙයි. අපි ආපසු හරවන ලද අංකය ජනනය කරන්නෙමු (ප්‍රතිවර්තනය = ආපසු හැරවීම * 10 + ඉතිරි). දෙවන අන්තිම ඉලක්කම් ලබා ගැනීම සඳහා දැන් අපි අංකය 10 න් බෙදන්නෙමු. N හි අගය බිංදුවට වඩා වැඩි වන තුරු අපි මෙම ක්‍රියාවලිය නැවත සිදු කරමු.

අන්තිමේදී, මුල් අංකය ආපසු හරවන ලද සංඛ්‍යාවට සමාන නම් අපි සංසන්දනය කරමු. ඔව් නම් එම අංකය පාලින්ඩ්‍රෝම් අංකයක් නම් එය පාලින්ඩ්‍රෝම් අංකයක් නොවේ.

කේතය

පාලින්ඩ්‍රෝම් අංකය සඳහා සී ++ කේතය

#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) ප්‍රතිලෝම අංකය ගබඩා කිරීම සඳහා අපි එක් අතිරේක විචල්‍යයක් භාවිතා කරන බැවිනි.