Reputation: 50
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
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
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
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