Roshan
Roshan

Reputation: 50

How to reverse a number in Java accepted by user and add both reversed number

I have written a code to reverse a number in java. But its taking only one character/displaying it.

import java.util.Scanner;
class HelloWorld
{
public static void main(String args[])
{
int n,n1, reverse = 0,rev = 0;
System.out.println("Enter the number to reverse");

Scanner scanner = new Scanner(System.in);

System.err.println("Please enter first number to reverse : ");
int number = scanner.nextInt();

System.out.println("Enter second number to reverse :");
int num = scanner.nextInt();

if( number >0)
{
reverse = reverse * 10;
reverse = reverse + number%10;
number = number/10;

 if(num>0)
  {
    rev = rev * 10;
    rev = rev + num%10;
    num = num/10;
  }

 }
 System.out.println("Reverse of entered number is "+reverse);
 System.out.println("Reverse of entered number is "+rev);
}
}

Input1 -65 output displayed - 5 Input2 -34 output displayed - 4

I have to reverse the user accpeted inputs and add the reverse of both boths inputs.

Upvotes: 1

Views: 877

Answers (3)

Vihar
Vihar

Reputation: 3831

you can do it like this , as @user7 pointed out, use an while loop , instead of if loop

while( number >0)
{
    reverse1 = reverse1 * 10;
    reverse1 = reverse1 + number%10;
    number = number/10;
}
while( number2 >0)
{
    reverse2 = reverse2 * 10;
    reverse2 = reverse2 + num%10;
    num = num/10;
}

System.out.println(reverse1+reverse2);

now for multiple Numbers

int[] numbers= numbers to be reversed;
reverseSum=0;
for(int i=0;i<numbers.length;i++){
    reverseSum+= reverse(numbers[i]);
}
...

public int reverse(int number){
     while( number >0)
    {
        reverse = reverse * 10;
        reverse = reverse + number%10;
        number = number/10;
    }
    return reverse;
}

hope this helps!

Good luck!

Upvotes: 0

VizardCrawler
VizardCrawler

Reputation: 1303

You can do

import java.util.Scanner;
import java.lang.StringBuilder
class HelloWorld
 {
   public static void main(String args[])
   {
  int n,n1, reverse = 0,rev = 0;
  String string1,string2;
  System.out.println("Enter the number to reverse");

  Scanner scanner = new Scanner(System.in);

  System.err.println("Please enter first number to reverse : ");
  int number = scanner.nextInt();

  System.out.println("Enter second number to reverse :");
  int num = scanner.nextInt();

  StringBuilder str1 =new StringBuilder(number+"");
  StringBuilder str2 =new StringBuilder(num+"");

   string1=str1.reverse().toString();
   string2=str2.reverse().toString();


 }
 System.out.println("Reverse of entered number is "+string1);
 System.out.println("Reverse of entered number is "+string2);
 }
}

At last you can conver the reversed string to integer using Integer.ParseInt method and add it

Upvotes: 0

Thiyagu
Thiyagu

Reputation: 17890

1)Use while instead of if.

2) If you compute the reverse of second number inside the while loop that finds the reverse of first number, if second number is longer then it won't work. Do it separately

while(number > 0)
{
    reverse = reverse * 10;
    reverse = reverse + number%10;
    number = number/10;
}
while(num > 0)
{
    rev = rev * 10;
    rev = rev + num%10;
    num = num/10;
}

Upvotes: 2

Related Questions