V tomto programe sa naučíte skontrolovať, či je číslo v Jave palindróm alebo nie. To sa deje pomocou slučky for and while.
Aby ste pochopili tento príklad, mali by ste mať znalosti nasledujúcich tém programovania v jazyku Java:
- Vyhlásenie Java, ak … else
- Java zatiaľ čo a robiť … zatiaľ čo Loop
- Java pre slučku
Príklad 1: Program na kontrolu palindrómu pomocou cyklu 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."); ) )
Výkon
121 je palindrómové číslo.
V tomto programe
- Najskôr sa hodnota daného čísla (čísla) uloží do inej celočíselnej premennej, originalInteger. Je to preto, že musíme na konci porovnať hodnoty obráteného čísla a pôvodného čísla.
- Potom sa slučka while použije na prepínanie čísel cez num, kým sa rovná 0.
- Pri každej iterácii sa posledná číslica čísla uloží do zvyšku.
- Potom sa zvyšok pridá do reversedInteger tak, že sa pridá na ďalšiu hodnotu miesta (vynásobenie 10).
- Potom sa posledná číslica odstráni z čísla po rozdelení na 10.
- Nakoniec sa porovnajú inverznéInteger a originálneInteger. Ak je rovnaké, jedná sa o palindrómové číslo. Ak nie, nie je.
Uskutočňujú sa tieto kroky vykonania:
Kroky vykonania palindrómupočet | num! = 0 | zvyšok | obrátenýInteger |
---|---|---|---|
121 | pravda | 1 | 0 * 10 + 1 = 1 |
12 | pravda | 2 | 1 * 10 + 2 = 12 |
1 | pravda | 1 | 12 * 10 + 1 = 121 |
0 | nepravdivé | - | 121 |
Príklad 2: Program na kontrolu palindrómu pomocou cyklu 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."); ) )
Výkon
11221 nie je palindróm.
Vo vyššie uvedenom programe sa namiesto slučky while používa slučka for.
Pri každej iterácii num /= 10
sa vykoná a num !=0
skontroluje sa stav.