En aquest apartat, aprendrem com invertir un nombre a Java utilitzant bucle while , per bucle i recursivitat .
Per invertir un número, seguiu els passos que s'indiquen a continuació:
- Primer, trobem la resta del nombre donat utilitzant l'operador mòdul (%).
- Multipliqueu la variable inversa per 10 i afegiu-hi la resta.
- Dividiu el nombre per 10.
Repetiu els passos anteriors fins que el número sigui 0.
int a cadena c++
N'hi ha tres maneres d'invertir un nombre Java :
- Inverteix un nombre utilitzant el bucle while
- Inverteix un nombre utilitzant el bucle for
- Inverteix un nombre mitjançant la recursivitat
Apliquem els passos anteriors en un exemple.
Exemple
Suposem que volem invertir el nombre 1234.
En aquest exemple, hem pres tres variables anomenades nombre (el nombre a invertir), resta (emmagatzema la resta), revés (emmagatzema el número invers) inicialitzat 0.
Iteració 1:
com determinar la mida del monitornombre = 1234
resta = 1234 % 10 = 4
invers = 0 * 10 + 4 = 0 + 4 = 4
nombre = 1234 / 10 = 123
Ara el valor del nombre i de la variable inversa és 123 i 4, respectivament.
Iteració 2:
nombre = 123resta = 123 % 10 = 3
invers = 4 * 10 + 3 = 40 + 3 = 43
nombre = 123 / 10 = 12
Ara el valor del nombre i de la variable inversa és 12 i 43, respectivament.
Iteració 3:
nombre = 12resta = 12 % 10 = 2
invers = 43 * 10 + 2 = 430 + 2 = 432
nombre = 12 / 10 = 1
Ara el valor del nombre i de la variable inversa és 1 i 432, respectivament.
Iteració 4:
nombre = 1resta = 1 % 10 = 1
invers = 432 * 10 + 1 = 4320 + 1 = 4321
nombre = 1 / 10 = 0
Ara el nombre variable es converteix en 0. Per tant, obtenim el nombre invers 4321 .
java 8
Implementem la lògica anterior en a Programa Java .
Inverteix un nombre utilitzant el bucle while
ReverseNumberExample1.java
public class ReverseNumberExample1 { public static void main(String[] args) { int number = 987654, reverse = 0; while(number != 0) { int remainder = number % 10; reverse = reverse * 10 + remainder; number = number/10; } System.out.println('The reverse of the given number is: ' + reverse); } }
Sortida
The reverse of the given number is: 456789
Inverteix un nombre utilitzant el bucle for
En el programa següent, hem substituït el bucle while per un bucle for. També elimina l'últim dígit del número, després de cada iteració. Quan la condició, nombre!=0 es fa fals, el bucle surt i obtenim el número invertit.
ReverseNumberExample2.java
truncar i eliminar la diferència
public class ReverseNumberExample2 { public static void main(String[] args) { int number = 123456, reverse = 0; //we have not mentioned the initialization part of the for loop for( ;number != 0; number=number/10) { int remainder = number % 10; reverse = reverse * 10 + remainder; } System.out.println('The reverse of the given number is: ' + reverse); } }
Sortida
The reverse of the given number is: 654321
Al programa anterior, també podem escriure el bucle for de la següent manera:
for(;number != 0;) { int remainder = number % 10; reverse = reverse * 10 + remainder; number=number/10; }
Inverteix un nombre mitjançant la recursivitat
ReverseNumberExample3.java
import java.util.Scanner; public class ReverseNumberExample3 { //method for reverse a number public static void reverseNumber(int number) { if (number <10) 10 { prints the same number if is less than system.out.println(number); return; } else system.out.print(number % 10); reversenumber(number public static void main(string args[]) system.out.print('enter that you want to reverse: '); scanner sc="new" scanner(system.in); int num="sc.nextInt();" system.out.print('the reverse of given is: method calling reversenumber(num); < pre> <p> <strong>Output 1:</strong> </p> <pre> Enter the number that you want to reverse: 9 The reverse of the given number is: 9 </pre> <p> <strong>Output 2:</strong> </p> <pre> Enter the number that you want to reverse: 7654123 The reverse of the given number is: 3214567 </pre> <p>The following program reverses both numbers, positive and negative. When we enter a number, it first checks the number is positive or negative. If the number is negative, it converts the number into positive by multiplying -1. After that, it performs the same steps (as we have performed in the above programs) to reverse a number. At last, again it checks the number is negative or positive. To make the number negative, it again multiplies the reverse number by -1.</p> <p> <strong>ReverseNumberExample4.java</strong> </p> <pre> import java.util.*; public class ReverseNumberExample4 { public static void main(String args[]) { System.out.print('Enter the number that you want to reverse: '); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int reverse_number = reverseNumber(n); System.out.println('The reverse of the given number is: '+reverse_number); } //method to reverse a number public static int reverseNumber(int number) { boolean isNoNegative = number = 1) { lastDigit = number % 10; // gives the last digit of the number reverse = reverse * 10 + lastDigit; number = number / 10; // removes the last digit of the number } //makes the number negative return isNoNegative == true? reverse*-1 : reverse; } } </pre> <p> <strong>Output 1:</strong> </p> <pre> Enter the number that you want to reverse: -98765 The reverse of the given number is: -56789 </pre> <p> <strong>Output 2:</strong> </p> <pre> Enter the number that you want to reverse: 321987 The reverse of the given number is: 789123 </pre> <hr></10)>
Sortida 2:
Enter the number that you want to reverse: 7654123 The reverse of the given number is: 3214567
El següent programa inverteix els dos nombres, positius i negatius. Quan introduïm un número, primer comprova que el nombre és positiu o negatiu. Si el nombre és negatiu, el converteix en positiu multiplicant -1. Després d'això, realitza els mateixos passos (com hem fet als programes anteriors) per invertir un número. Finalment, torna a comprovar que el nombre és negatiu o positiu. Per fer que el nombre sigui negatiu, torna a multiplicar el nombre invers per -1.
ReverseNumberExample4.java
import java.util.*; public class ReverseNumberExample4 { public static void main(String args[]) { System.out.print('Enter the number that you want to reverse: '); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int reverse_number = reverseNumber(n); System.out.println('The reverse of the given number is: '+reverse_number); } //method to reverse a number public static int reverseNumber(int number) { boolean isNoNegative = number = 1) { lastDigit = number % 10; // gives the last digit of the number reverse = reverse * 10 + lastDigit; number = number / 10; // removes the last digit of the number } //makes the number negative return isNoNegative == true? reverse*-1 : reverse; } }
Sortida 1:
Enter the number that you want to reverse: -98765 The reverse of the given number is: -56789
Sortida 2:
Enter the number that you want to reverse: 321987 The reverse of the given number is: 789123
10)>