Šajā sadaļā mēs uzzināsim kā apgriezt ciparu Java izmantojot kamēr cilpa , cilpai un rekursija .
Lai apgrieztu numuru, veiciet tālāk norādītās darbības.
- Pirmkārt, mēs atrodam dotā skaitļa atlikušo daļu, izmantojot operatoru modulo (%).
- Reiziniet mainīgo reversu ar 10 un pievienojiet tam atlikušo daļu.
- Sadaliet skaitli ar 10.
Atkārtojiet iepriekš minētās darbības, līdz skaitlis kļūst par 0.
virkne java indexof
Tur ir trīs veidi, kā apgriezt skaitli Java :
- Apgriezt ciparu, izmantojot cilpu while
- Apgrieziet skaitli, izmantojot cilpu
- Apgriezt skaitli, izmantojot rekursiju
Piemērosim iepriekš minētās darbības piemērā.
Piemērs
Pieņemsim, ka mēs vēlamies apgriezt skaitli 1234.
Šajā piemērā mēs esam izmantojuši trīs nosauktos mainīgos numuru (apgrieztais numurs), atlikumu (saglabā atlikušo daļu), otrādi (saglabā apgriezto numuru) inicializēts 0.
1. iterācija:
komanda excel ar visiem burtiemskaitlis = 1234
atlikums = 1234 % 10 = 4
otrādi = 0 * 10 + 4 = 0 + 4 = 4
skaitlis = 1234 / 10 = 123
Tagad skaitļa un apgrieztā mainīgā vērtība ir attiecīgi 123 un 4.
2. iterācija:
skaitlis = 123atlikums = 123 % 10 = 3
reverss = 4 * 10 + 3 = 40 + 3 = 43
skaitlis = 123/10 = 12
Tagad skaitļa un apgrieztā mainīgā vērtība ir attiecīgi 12 un 43.
3. iterācija:
skaitlis = 12atlikums = 12 % 10 = 2
reverss = 43 * 10 + 2 = 430 + 2 = 432
skaitlis = 12/10 = 1
Tagad skaitļa un apgrieztā mainīgā vērtība ir attiecīgi 1 un 432.
4. iterācija:
skaitlis = 1atlikums = 1 % 10 = 1
reverss = 432 * 10 + 1 = 4320 + 1 = 4321
skaitlis = 1/10 = 0
Tagad mainīgais skaitlis kļūst par 0. Tādējādi mēs iegūstam apgriezto skaitli 4321 .
Ieviesīsim iepriekš minēto loģiku a Java programma .
css robeža
Apgriezt ciparu, izmantojot cilpu 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); } }
Izvade
The reverse of the given number is: 456789
Apgrieziet skaitli, izmantojot cilpu
Nākamajā programmā cilpu while esam aizstājuši ar for cilpu. Tas arī noņem skaitļa pēdējo ciparu pēc katras iterācijas. Kad nosacījums, skaitlis!=0 kļūst nepatiess, cilpa iziet, un mēs iegūstam apgrieztu skaitli.
ReverseNumberExample2.java
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); } }
Izvade
kat timpf svars
The reverse of the given number is: 654321
Iepriekš minētajā programmā mēs varam arī uzrakstīt for cilpu šādi:
for(;number != 0;) { int remainder = number % 10; reverse = reverse * 10 + remainder; number=number/10; }
Apgriezt skaitli, izmantojot rekursiju
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)>
2. izvads:
Enter the number that you want to reverse: 7654123 The reverse of the given number is: 3214567
Sekojošā programma apvērš gan pozitīvos, gan negatīvos skaitļus. Kad mēs ievadām skaitli, tas vispirms pārbauda, vai skaitlis ir pozitīvs vai negatīvs. Ja skaitlis ir negatīvs, tas pārvērš skaitli pozitīvā, reizinot ar -1. Pēc tam tas veic tās pašas darbības (kā mēs veicām iepriekš minētajās programmās), lai apgrieztu skaitli. Beidzot tas atkal pārbauda, vai skaitlis ir negatīvs vai pozitīvs. Lai skaitlis būtu negatīvs, tas atkal reizina apgriezto skaitli ar -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; } }
1. izvads:
Enter the number that you want to reverse: -98765 The reverse of the given number is: -56789
2. izvads:
Enter the number that you want to reverse: 321987 The reverse of the given number is: 789123
10)>