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
falseterug als de invoer negatief is. - Overflow: Het omkeren van een 32-bits integer kan overflow veroorzaken. Voor productiecode, gebruik
longof 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
- C# While en Do-While Loops: Syntaxis, Voorbeelden en Best Practices
- C# For Loops: Syntaxis, Stroom en Praktische Voorbeelden
- C++ for loops: stap-voor-stap gids
- Python-lussen beheersen: For, While, Break, Continue en Enumerate uitgelegd
- Java Hello World: je eerste programma
- Java Enhanced For-lus beheersen: syntax, voorbeelden en best practices
- Java-programma om te bepalen of een getal priem is
- Java-programma om priemgetallen van 1 tot 100 weer te geven – Stapsgewijze handleiding
- Fibonacci-reeks genereren in Java: For, While en Recursieve voorbeelden
- Java-programma om Armstrong-getallen te identificeren met for-lus
- Java palindroom-getal checker: Algoritmen met while en for lussen