Introduksjon til Palindrome i C ++

En palindrome er et tall, sekvens eller et ord som leser det samme bakover som fremover. Madam In Eden, I'm Adam er et av de beste eksemplene på palindrome ord som høres det samme ut etter omvendt. Det er her palindrome gjør ting interessant de fungerer som speil. Navnet 'palindrome' betyr faktisk å løpe tilbake igjen i henhold til gresk etymologi. I C ++ er palindrome nummer et tall som forblir det samme etter revers. Men hvordan er dette mulig? Hvordan skal vi sjekke om et tall er for stort og sammensatt? Husk alltid denne lille algoritmen for å sjekke om et tall er en palindrome eller ikke.

  1. Få inntastingsnummer fra brukeren.
  2. Hold den i en midlertidig variabel.
  3. Vend tallet.
  4. Etter å ha reversert, sammenlign den med en midlertidig variabel.
  5. Hvis det samme er tallet et palindrom.

Ikke bekymre deg her er et eksempel på at vi må skrive ut palindromer mellom det gitte antallet. For eksempel er rekkevidden (10, 122), da skal utgangen være (11, 22, 33, 44, 55, 66, 77, 88, 99, 101, 111, 121)

C ++ program for å implementere Palindrome

#include
using namespace std;
// Function to check if a number is a palindrome or not.
int Palindrome(int n)
(
// Find reverse of n
int reverse = 0;
for (int i = n; i > 0; i /= 10)
reverse = reverse*10 + i%10;
// To check if they are same
return (n==reverse);
)
//function to prints palindrome between a minimum and maximum number
void countPalindrome(int minimum, int maximum)
(
for (int i = minimum ; i <= maximum; i++)
if (Palindrome(i))
cout << i << " ";
)
// program to test above functionality
int main()
(
countPalindrome(100, 2000);
return 0;
)

Produksjon:

La oss ta ett eksempel mer spesifikt ved å bruke en stundsløyfe som også vil forklare algoritmen vi diskuterte i innledningen. Vi tar et nummer som input fra brukeren og sjekker om det er en palindrome eller ikke.

C ++ -program for å sjekke om et tall er en palindrome eller ikke

#include
using namespace std;
int main()
(
int n, sum=0, temp, reverse;
cout<<"Please enter the Number=";
cin>>n;
temp=n;
while(n>0)
(
reverse=n%10;
sum=(sum*10)+reverse;
n=n/10;
)
if(temp==sum)
cout<<"The number is Palindrome.";
else
cout<<"The number is not Palindrome.";
return 0;
)

Produksjon:

Ovenstående kode vil ta et tall som inndata fra brukeren og legge det inn i en midlertidig variabel, da du kan se at summen allerede er 0, vil den bruke en stundsløyfe til tallet blir 0 og når koden er skrevet vil den utføre operasjon som skrevet etter mens loop. Hvis tallet blir 0, vil det sjekke om den midlertidige variabelen er lik summen eller ikke. Hvis tilstanden tilfredsstiller, vil den skrive ut at tallet er palindrome ellers hvis tilstanden mislykkes vil den gå til andre deler og trykke at tallet ikke er en palindrome.

Et eksempel til ved å bruke en gjør-mens-loop som også vil forklare algoritmen vi diskuterte i innledningen. Vi tar et nummer som input fra brukeren og sjekker om det er en palindrome eller ikke.

C ++ -program for å sjekke om et tall er en palindrome eller ikke

#include
using namespace std;
int main()
(
int x, number, reverse = 0, temp ;
cout << "Please enter a number here: ";
cin >> number;
x = number;
do
(
temp = number % 10;
reverse = (reverse * 10) + temp;
number = number / 10;
) while (number != 0);
cout << " The reverse of the number is: " << reverse << endl;
if (x == reverse)
cout << " Entered number is a Palindrome.";
else
cout << " Entered number is not a Palindrome.";
return 0;
)

Produksjon:

Fordeler

  • Anta at i prosjektet ditt vil du matche første streng / element med den siste og deretter andre element / streng til nest siste og så videre, og strengen vil være palindrome hvis du kommer til midten. Ved bare å bruke for loop kan du utføre alle operasjoner, og det sparer mye tid og plass når det kommer til programmering fordi du i dette tilfellet verken trenger å endre den eksisterende strengen eller skrive en annen variabel til minnet. Også kamper som kreves i helt lik halvparten av strenglengden.
  • Hvis du jobber med et programmeringsspråk der det er enkelt å reversere strenger, men det vil kreve en ekstra mengde plass for å lagre den omvendte strengen på en annen måte, for eksempel rekursjon krever mer stabelramme. Det er en mer måte enn rekursjon, og det er å skrive en løkke i midten av strengen for å sjekke om den tilsvarende bokstaven i hver ende er den samme eller ikke. Hvis det er ulikt, bryter du paret tidlig og erklærer strengen som ikke en palindrome.
  • Ovennevnte tilnærming har fordelen av å ikke kaste bort noen beregningsressurser som rekursjon uten å trenge ekstra stabelrammer, men det er heller ikke enkelt som bare å snu strengen og sjekke likheten mellom dem. Det tar innsats, men det vil alltid være mindre enn andre algoritmer fordi det er den enkleste måten å finne en palindrome.
  • Hver teknikk har sine fordeler med programmering, og det er tusenvis av andre måter å utføre den samme oppgaven på, men på en effektiv måte. Det avhenger helt av det nåværende prosjektet du jobber med. Du må bare bestemme i henhold til din situasjon at hvilken teknikk som vil hjelpe deg å gi de beste fordelene uavhengig av ulempene.
  • I et reelt prosjekt, må du utføre et antall palindrome kontroller på en hyppig basis i løpet av kort tid. Da bør du implementere den ovennevnte algoritmen i utgangspunktet til og med mindre du trenger en mer optimistisk løsning for nåværende tekniske begrensninger.

Konklusjon

Ved å bruke en palindrome algoritme kan du gjøre søket ditt mer effektivt og raskere når det gjelder å finne palindromer uavhengig av datatyper som strengkarakter eller heltall. For prosjekter som har flere data i de forskjellige systemene, kan disse algoritmene brukes til å gjøre den generelle ytelsen mye raskere.

Anbefalte artikler

Dette er en guide til Palindrome i C ++. Her diskuterer vi C ++ -programmet for å sjekke og implementere Palindrome med fordelene. Du kan også se på følgende artikkel for å lære mer -

  1. Palindrome-program i C ++
  2. Beste C ++ kompilator
  3. Fibonacci-serien i C ++
  4. Overbelastning i C ++
  5. Overbelastning i Java
  6. C ++ Datatyper
  7. Python-overbelastning
  8. Topp 11 funksjoner og fordeler med C ++
  9. Fibonacci-serien i JavaScript med eksempler