In questo programma imparerai a controllare se un numero è palindromo o meno in Java. Questo viene fatto usando il ciclo for e while.
Per comprendere questo esempio, è necessario conoscere i seguenti argomenti di programmazione Java:
- Istruzione Java if … else
- Java while e do … while Loop
- Java per Loop
Esempio 1: programma per controllare il palindromo utilizzando il ciclo 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."); ) )
Produzione
121 è un numero palindromo.
In questo programma,
- Innanzitutto, il valore di un dato numero (num) viene memorizzato in un'altra variabile intera, originalInteger. Questo perché dobbiamo confrontare i valori del numero invertito e del numero originale alla fine.
- Quindi, un ciclo while viene utilizzato per scorrere num fino a quando non è uguale a 0.
- Ad ogni iterazione, l'ultima cifra di num viene memorizzata nel resto.
- Quindi, il resto viene aggiunto a reversedInteger in modo tale da essere aggiunto al valore di posizione successivo (moltiplicazione per 10).
- Quindi, l'ultima cifra viene rimossa da num dopo la divisione per 10.
- Infine, vengono confrontati reversedInteger e originalInteger. Se uguale, è un numero palindromo. In caso contrario, non lo è.
Ecco i passaggi di esecuzione che avvengono:
Fasi di esecuzione palindromonum | num! = 0 | resto | reversedInteger |
---|---|---|---|
121 | vero | 1 | 0 * 10 + 1 = 1 |
12 | vero | 2 | 1 * 10 + 2 = 12 |
1 | vero | 1 | 12 * 10 + 1 = 121 |
0 | falso | - | 121 |
Esempio 2: programma per controllare palindromo utilizzando il ciclo 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."); ) )
Produzione
11221 non è un palindromo.
Nel programma sopra, viene utilizzato il ciclo for invece di un ciclo while.
Ad ogni iterazione, num /= 10
viene eseguito e la condizione num !=0
viene verificata.