V tem programu se boste naučili preverjati, ali je številka v Javi palindrom ali ne. To se naredi z uporabo zanke for in while.
Če želite razumeti ta primer, morate poznati naslednje programske teme Java:
- Izjava Java, če … drugače
- Java while in do … while Loop
- Java za zanko
Primer 1: Program za preverjanje palindroma z uporabo zanke while
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."); ) )
Izhod
121 je palindromsko število.
V tem programu
- Najprej se vrednost dane številke (num) shrani v drugo celoštevilčno spremenljivko, originalInteger. To je zato, ker moramo na koncu primerjati vrednosti obrnjenega števila in izvirnega števila.
- Nato se zanka while uporablja za zanko skozi num, dokler ni enaka 0.
- Na vsaki ponovitvi se zadnja številka števila shrani v preostanek.
- Nato se ostanek doda reversedInteger tako, da se doda naslednji naslednji vrednosti (množenje z 10).
- Nato se zadnja številka odstrani iz števila po deljenju z 10.
- Na koncu se primerjata reversedInteger in originalInteger. Če je enako, je to število palindroma. Če ne, ni.
Tu so koraki za izvedbo:
Koraki izvedbe palindromaštevilka | število! = 0 | preostanek | reversedInteger |
---|---|---|---|
121 | prav | 1. | 0 * 10 + 1 = 1 |
12. | prav | 2. | 1 * 10 + 2 = 12 |
1. | prav | 1. | 12 * 10 + 1 = 121 |
0 | napačno | - | 121 |
Primer 2: Program za preverjanje palindroma z uporabo zanke 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."); ) )
Izhod
11221 ni palindrom.
V zgornjem programu se zanka for uporablja namesto zanke while.
Na vsaki ponovitvi num /= 10
se izvrši in num !=0
preveri stanje.