Programma Java per verificare se un numero è palindromo o meno

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 palindromo
num 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 /= 10viene eseguito e la condizione num !=0viene verificata.

Articoli interessanti...