Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

Java palindroom-getal checker: Algoritmen met while en for lussen

Wat is een palindroom-getal?

Een palindroom-getal leest hetzelfde voorwaarts en achterwaarts. Voorbeelden zijn 121, 393 en 48084. Ze vertonen verticale assymmetrie en worden vaak gebruikt in algoritmische puzzels.

In Java zijn palindroom-controles veelvoorkomend in sollicitatievragen en programmeeruitdagingen. Het algoritme is eenvoudig maar kan op meerdere manieren worden geïmplementeerd.

Algoritme-overzicht

  • Lees het invoer-gehele getal.
  • Keer de cijfers om en bewaar het resultaat.
  • Vergelijk het omgekeerde getal met het originele.
  • Als ze overeenkomen, is het getal een palindroom; anders niet.

Controleren met een while-lus

Hieronder staat een beknopt Java-programma dat een while-lus gebruikt om het getal om te keren en te bepalen of het een palindroom is. De code drukt tussentijdse stappen af om het proces te illustreren.

package com.guru99; public class PalindroomGetal { public static void main(String[] args) { int invoerGetal = 171; // te controleren getal int omgekeerd = 0; int temp = invoerGetal; while (temp > 0) { int laatsteCijfer = temp % 10; omgekeerd = (omgekeerd * 10) + laatsteCijfer; temp /= 10; } System.out.println("Omgekeerd getal: " + omgekeerd); if (omgekeerd == invoerGetal) { System.out.println("Getal is een palindroom."); } else { System.out.println("Getal is geen palindroom."); } } } 

Uitvoer

Omgekeerd getal: 171 Getal is een palindroom. 

Controleren met een for-lus

Deze logica kan ook met een for-lus worden uitgedrukt, wat mogelijk voorkeur geniet in contexten waar de luscounter natuurlijker als aftellende index wordt uitgedrukt.

package com.guru99; public class PalindroomGetal { public static void main(String[] args) { int invoerGetal = 185; // te controleren getal int omgekeerd = 0; int temp = invoerGetal; for (; temp > 0; temp /= 10) { int laatsteCijfer = temp % 10; omgekeerd = (omgekeerd * 10) + laatsteCijfer; } System.out.println("Omgekeerd getal: " + omgekeerd); if (omgekeerd == invoerGetal) { System.out.println("Getal is een palindroom."); } else { System.out.println("Getal is geen palindroom."); } } } 

Uitvoer

Omgekeerd getal: 581 Getal is geen palindroom. 

Overwegingen en best practices

  • Negatieve getallen: Per definitie worden negatieve getallen niet als palindromen beschouwd vanwege het leidende minteken. Geef onmiddellijk false terug als de invoer negatief is.
  • Overflow: Het omkeren van een 32-bits integer kan overflow veroorzaken. Voor productiecode, gebruik long of controleer op overflow voor elke vermenigvuldiging.
  • String-benadering: Het converteren van het getal naar een string en het vergelijken met de omgekeerde string is vaak eenvoudiger en minder foutgevoelig, vooral voor zeer grote getallen.

Voor gedetailleerdere uitleg, raadpleeg GeeksforGeeks en Stack Overflow discussie over getallen omkeren.

Java

  1. C# While en Do-While Loops: Syntaxis, Voorbeelden en Best Practices
  2. C# For Loops: Syntaxis, Stroom en Praktische Voorbeelden
  3. C++ for loops: stap-voor-stap gids
  4. Python-lussen beheersen: For, While, Break, Continue en Enumerate uitgelegd
  5. Java Hello World: je eerste programma
  6. Java Enhanced For-lus beheersen: syntax, voorbeelden en best practices
  7. Java-programma om te bepalen of een getal priem is
  8. Java-programma om priemgetallen van 1 tot 100 weer te geven – Stapsgewijze handleiding
  9. Fibonacci-reeks genereren in Java: For, While en Recursieve voorbeelden
  10. Java-programma om Armstrong-getallen te identificeren met for-lus
  11. Java palindroom-getal checker: Algoritmen met while en for lussen