Programma Java per invertire un numero

In questo programma imparerai a invertire un numero usando un ciclo while e un ciclo for in Java.

Per comprendere questo esempio, è necessario conoscere i seguenti argomenti di programmazione Java:

  • Java while e do … while Loop
  • Java per Loop

Esempio 1: invertire un numero utilizzando un ciclo while in Java

 public class ReverseNumber ( public static void main(String() args) ( int num = 1234, reversed = 0; while(num != 0) ( int digit = num % 10; reversed = reversed * 10 + digit; num /= 10; ) System.out.println("Reversed Number: " + reversed); ) )

Produzione

 Numero invertito: 4321

In questo programma, il ciclo while viene utilizzato per invertire un numero come indicato nei seguenti passaggi:

  • Innanzitutto, il resto del num diviso per 10 viene memorizzato nella cifra variabile. Ora, la cifra contiene l'ultima cifra di num, cioè 4.
    cifra viene quindi aggiunta alla variabile invertita dopo averla moltiplicata per 10. La moltiplicazione per 10 aggiunge una nuova posizione nel numero invertito. Un posto moltiplicato per 10 ti dà il decimo posto, il decimo ti dà il centesimo e così via. In questo caso, invertito contiene 0 * 10 + 4 = 4.
    num viene quindi diviso per 10 in modo che ora contenga solo le prime tre cifre: 123.
  • Dopo la seconda iterazione, la cifra è uguale a 3, invertita è uguale a 4 * 10 + 3 = 43 e num = 12
  • Dopo la terza iterazione, la cifra è uguale a 2, invertita è uguale a 43 * 10 + 2 = 432 e num = 1
  • Dopo la quarta iterazione, la cifra è uguale a 1, invertita è uguale a 432 * 10 + 1 = 4321 e num = 0
  • Ora num = 0, quindi l'espressione di test num != 0fallisce e il ciclo while termina. invertito contiene già il numero invertito 4321.

Esempio 2: invertire un numero utilizzando un ciclo for in Java

 public class ReverseNumber ( public static void main(String() args) ( int num = 1234567, reversed = 0; for(;num != 0; num /= 10) ( int digit = num % 10; reversed = reversed * 10 + digit; ) System.out.println("Reversed Number: " + reversed); ) )

Produzione

 Numero invertito: 7654321

Nel programma precedente, il ciclo while è sostituito da un ciclo for dove:

  • non viene utilizzata alcuna espressione di inizializzazione
  • l'espressione di prova rimane la stessa ( num != 0)
  • aggiorna / incrementa l'espressione contiene num /= 10.

Quindi, dopo ogni iterazione, viene eseguita l'espressione di aggiornamento che rimuove l'ultima cifra di num.

Quando il ciclo for termina, reversed conterrà il numero invertito.

Articoli interessanti...