U ovom programu naučit ćete provjeriti je li neki broj palindrom na Javi. To se postiže pomoću petlje for i while.
Da biste razumjeli ovaj primjer, trebali biste imati znanje o sljedećim temama programiranja Java:
- Java if … else Izjava
- Java while and do … while Loop
- Java za petlju
Primjer 1: Program za provjeru palindroma pomoću while petlje
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."); ) )
Izlaz
121 je palindromski broj.
U ovom programu,
- Prvo, zadana vrijednost broja (num) pohranjuje se u drugu cjelobrojnu varijablu, originalInteger. To je zato što na kraju moramo usporediti vrijednosti obrnutog broja i izvornog broja.
- Zatim se koristi loop za petlju kroz num dok ne bude jednako 0.
- Na svakoj se iteraciji zadnja znamenka broja pohranjuje u ostatak.
- Zatim se ostatak dodaje reversedInteger tako da se dodaje sljedećoj vrijednosti mjesta (množenje sa 10).
- Zatim se posljednja znamenka uklanja iz broja nakon dijeljenja s 10.
- Na kraju se uspoređuju reversedInteger i originalInteger. Ako je jednak, to je palindromski broj. Ako nije, nije.
Evo koraka izvršenja koji se odvijaju:
Koraci izvršenja palindromanum | broj! = 0 | ostatak | reversedInteger |
---|---|---|---|
121 | pravi | 1 | 0 * 10 + 1 = 1 |
12 | pravi | 2 | 1 * 10 + 2 = 12 |
1 | pravi | 1 | 12 * 10 + 1 = 121 |
0 | lažno | - | 121 |
Primjer 2: Program za provjeru palindroma pomoću petlje for
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."); ) )
Izlaz
11221 nije palindrom.
U gore navedenom programu umjesto petlje while koristi se petlja for.
Na svakoj se iteraciji num /= 10
izvršava i num !=0
provjerava stanje.