În acest program, veți învăța să verificați dacă un număr este palindrom sau nu în Java. Acest lucru se face folosind bucla for și while.
Pentru a înțelege acest exemplu, ar trebui să aveți cunoștințele despre următoarele subiecte de programare Java:
- Java dacă … altfel Declarație
- Java while și do … while Buclă
- Java pentru buclă
Exemplul 1: Program pentru a verifica Palindrome folosind bucla 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."); ) )
Ieșire
121 este un număr palindrom.
În acest program,
- În primul rând, valoarea dată a numărului (num) este stocată într-o altă variabilă întreagă, originalInteger. Acest lucru se datorează faptului că trebuie să comparăm valorile numărului inversat și al numărului original la sfârșit.
- Apoi, o buclă while este utilizată pentru a face o buclă prin num până când este egal cu 0.
- La fiecare iterație, ultima cifră de num este stocată în rest.
- Apoi, restul se adaugă la inversat Întreg, astfel încât să fie adăugat la următoarea valoare a locului (înmulțirea cu 10).
- Apoi, ultima cifră este eliminată din num după împărțire cu 10.
- În cele din urmă, sunt comparate reversedInteger și originalInteger. Dacă este egal, este un număr palindrom. Dacă nu, nu este.
Iată pașii de execuție care au loc:
Pași de execuție a palindromuluinum | num! = 0 | rest | reversedInteger |
---|---|---|---|
121 | Adevărat | 1 | 0 * 10 + 1 = 1 |
12 | Adevărat | 2 | 1 * 10 + 2 = 12 |
1 | Adevărat | 1 | 12 * 10 + 1 = 121 |
0 | fals | - | 121 |
Exemplul 2: Program pentru a verifica Palindrome folosind bucla 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."); ) )
Ieșire
11221 nu este un palindrom.
În programul de mai sus, bucla for este utilizată în locul unei bucle while.
La fiecare iterație, num /= 10
se execută și num !=0
se verifică starea .