I dette programmet lærer du å sjekke om et tall er palindrom eller ikke i Java. Dette gjøres ved å bruke for og while loop.
For å forstå dette eksemplet, bør du ha kunnskap om følgende Java-programmeringsemner:
- Java if… else Erklæring
- Java mens og gjør… mens Loop
- Java for Loop
Eksempel 1: Program for å sjekke palindrom ved hjelp av 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."); ) )
Produksjon
121 er et palindromnummer.
I dette programmet,
- Først lagres gitt tall (num) sin verdi i et annet heltallvariabel, originalInteger. Dette er fordi vi må sammenligne verdiene til omvendt nummer og originaltall på slutten.
- Deretter brukes en while-løkke til å løpe gjennom num til den er lik 0.
- På hver iterasjon blir det siste sifferet på numre lagret i resten.
- Deretter blir resten lagt til reversedInteger slik at den legges til neste plassverdi (multipliser med 10).
- Deretter fjernes det siste sifferet fra num etter divisjon med 10.
- Til slutt sammenlignes reversedInteger og originalInteger. Hvis det er likt, er det et palindromtall. Hvis ikke, er det ikke det.
Her er gjennomføringstrinnene som finner sted:
Palindrome utførelse trinnnum | num! = 0 | rest | reversedInteger |
---|---|---|---|
121 | ekte | 1 | 0 * 10 + 1 = 1 |
12 | ekte | 2 | 1 * 10 + 2 = 12 |
1 | ekte | 1 | 12 * 10 + 1 = 121 |
0 | falsk | - | 121 |
Eksempel 2: Program for å sjekke palindrom ved hjelp av 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."); ) )
Produksjon
11221 er ikke et palindrom.
I programmet ovenfor brukes for loop i stedet for en while-loop.
På hver iterasjon num /= 10
utføres og tilstanden num !=0
blir sjekket.