Java-programma om te controleren of een nummer Palindroom is of niet

In dit programma leer je controleren of een nummer palindroom is of niet in Java. Dit wordt gedaan door de lus for en while te gebruiken.

Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende Java-programmeeronderwerpen:

  • Java if… else-instructie
  • Java while en do … while Loop
  • Java voor Loop

Voorbeeld 1: Programma om Palindrome te controleren met while-lus

 public class Palindrome ( public static void main(String() args) ( int num = 121, reversedInteger = 0, remainder, originalInteger; originalInteger = num; // reversed integer is stored in variable while( num != 0 ) ( remainder = num % 10; reversedInteger = reversedInteger * 10 + remainder; num /= 10; ) // palindrome if orignalInteger and reversedInteger are equal if (originalInteger == reversedInteger) System.out.println(originalInteger + " is a palindrome."); else System.out.println(originalInteger + " is not a palindrome."); ) )

Uitvoer

 121 is een palindroomgetal.

In dit programma

  • Eerst wordt de waarde van het gegeven nummer (num) opgeslagen in een andere integer-variabele, originalInteger. Dit komt omdat we de waarden van het omgekeerde nummer en het originele nummer aan het einde moeten vergelijken.
  • Vervolgens wordt een while-lus gebruikt om door num te lopen totdat deze gelijk is aan 0.
    • Bij elke iteratie wordt het laatste cijfer van het nummer opgeslagen in de rest.
    • Vervolgens wordt de rest opgeteld bij reversedInteger zodat het wordt opgeteld bij de waarde van de volgende plaats (vermenigvuldiging met 10).
    • Vervolgens wordt het laatste cijfer verwijderd uit num na deling door 10.
  • Ten slotte worden reversedInteger en originalInteger vergeleken. Indien gelijk, is het een palindroomgetal. Zo niet, dan is het dat niet.

Hier zijn de uitvoeringsstappen die plaatsvinden:

Palindrome uitvoeringsstappen
num num! = 0 rest reversedInteger
121 waar 1 0 * 10 + 1 = 1
12 waar 2 1 * 10 + 2 = 12
1 waar 1 12 * 10 + 1 = 121
0 false - 121

Voorbeeld 2: programma om palindroom te controleren met for-lus

 public class Palindrome ( public static void main(String() args) ( int num = 11221, reversedInteger = 0, remainder, originalInteger; originalInteger = num; // reversed integer is stored in variable for( ;num != 0; num /= 10 ) ( remainder = num % 10; reversedInteger = reversedInteger * 10 + remainder; ) // palindrome if orignalInteger and reversedInteger are equal if (originalInteger == reversedInteger) System.out.println(originalInteger + " is a palindrome."); else System.out.println(originalInteger + " is not a palindrome."); ) )

Uitvoer

 11221 is geen palindroom.

In het bovenstaande programma wordt for-lus gebruikt in plaats van een while-lus.

Bij elke iteratie num /= 10wordt uitgevoerd en wordt de conditie num !=0gecontroleerd.

Interessante artikelen...