Java-program til kontrol af, om et tal er palindrom eller ej

I dette program lærer du at kontrollere, om et tal er palindrom eller ikke i Java. Dette gøres ved at bruge for og while-loop.

For at forstå dette eksempel skal du have kendskab til følgende Java-programmeringsemner:

  • Java hvis … ellers Erklæring
  • Java mens og gør … mens Loop
  • Java til Loop

Eksempel 1: Program til at kontrollere palindrom ved hjælp af mens loop

 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."); ) )

Produktion

 121 er et palindromtal.

I dette program

  • Først gemmes det givne tal (num) 's værdi i en anden heltalsvariabel, originalInteger. Dette skyldes, at vi er nødt til at sammenligne værdierne for omvendt antal og originalt tal i slutningen.
  • Derefter bruges en while-løkke til at løbe igennem num, indtil den er lig med 0.
    • På hver iteration gemmes det sidste ciffer af num i resten.
    • Derefter føjes resten til reversedInteger, således at den føjes til den næste placeringsværdi (multiplikation med 10).
    • Derefter fjernes det sidste ciffer fra num efter division med 10.
  • Endelig sammenlignes reversedInteger og originalInteger. Hvis det er lige, er det et palindromtal. Hvis ikke, er det ikke tilfældet.

Her er de udførelsestrin, der finder sted:

Palindrome udførelsestrin
antal num! = 0 resten reversedInteger
121 sand 1 0 * 10 + 1 = 1
12 sand 2 1 * 10 + 2 = 12
1 sand 1 12 * 10 + 1 = 121
0 falsk - 121

Eksempel 2: Program til at kontrollere palindrom ved hjælp af for loop

 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."); ) )

Produktion

 11221 er ikke et palindrom.

I ovenstående program bruges for loop i stedet for en while-loop.

Udføres på hver iteration, num /= 10og tilstanden num !=0kontrolleres.

Interessante artikler...