Simple Java Help: Inverse of 4 digit Number without Strings
I have searched the forum already and not found anything applicable to my problem. So I need to be able to invert ANY 4 digit number using java. Ex. Input 1234 --> Output 4321
I'm receiving the wrong answer with what I currently have:
public class InvertID {
public static void main(String[]args){
System.out.println("Enter ID");
java.util.Scanner keyboardReader;
keyboardReader = new java.util.Scanner(System.in);
int ID = keyboardReader.nextInt();
int A,B,C,D;
A=(ID/1000);
B=(ID-(A*1000))/100;
C=(ID-((B*100)+A))/10;
D=(ID-(A*1000)-(B*100)-(C*10));
System.out.println("Your Inverted ID is:");
System.out.print(D);
System.out.print(C);
System.out.print(B);
System.out.println(A);
}
}
Answer = -99610321
I have no idea what I'm doing wrong.
This is a question on an assignment and I'm not allowed to convert to strings (I think) then back again, as it needs to remain basic.
Any help is MUCH appreciated. Thank you so much!
Re: Simple Java Help: Inverse of 4 digit Number without Strings
look up modulus operation and there will be your answer
int a = 1234
int temp = a%10
Re: Simple Java Help: Inverse of 4 digit Number without Strings
Quote:
Originally Posted by
Danieldcc
look up modulus operation and there will be your answer
int a = 1234
int temp = a%10
I don't seem to understand. I watched a video explaining Modulus. But now the answer is: 410321
with
public class Learning {
public static void main(String[]args){
System.out.println("Enter ID");
java.util.Scanner keyboardReader;
keyboardReader = new java.util.Scanner(System.in);
int ID = keyboardReader.nextInt();
int A,B,C,D;
A=(ID/1000);
B=(ID-(A*1000))/100;
C=((ID-((B*100)+A))/10);
D=ID%10;
System.out.println("Your Inverted ID is:");
System.out.print(D);
System.out.print(C);
System.out.print(B);
System.out.println(A);
}
}
Re: Simple Java Help: Inverse of 4 digit Number without Strings
i don't think the use of modulus is the problem..
C=((ID-((B*100)+A))/10);
you are missing something in the above line of code, you used it correctly in the other lines of code, get this line correct and the code works
Re: Simple Java Help: Inverse of 4 digit Number without Strings
i don't think the use of modulus is the problem..
Code:
C=((ID-((B*100)+A))/10);
you are missing something in the above line of code, you used it correctly in the other lines of code, get this line correct and the code works
Re: Simple Java Help: Inverse of 4 digit Number without Strings
Quote:
Originally Posted by
mcgillstudent
I don't seem to understand. I watched a video explaining Modulus. But now the answer is: 410321
with
public class Learning {
public static void main(String[]args){
System.out.println("Enter ID");
java.util.Scanner keyboardReader;
keyboardReader = new java.util.Scanner(System.in);
int ID = keyboardReader.nextInt();
int A,B,C,D;
A=(ID/1000);
B=(ID-(A*1000))/100;
C=((ID-((B*100)+A))/10);
D=ID%10;
System.out.println("Your Inverted ID is:");
System.out.print(D);
System.out.print(C);
System.out.print(B);
System.out.println(A);
}
}
Quick way i did it....you might want to put it in a loop so you can have a longer number but here you are....
Code:
int a = 4321;
int tempa = a%10;
a /= 10;
int tempb = a%10;
a /= 10;
int tempc = a%10;
a /= 10;
int tempd = a%10;
a /= 10;
System.out.print(tempa);
System.out.print(tempb);
System.out.print(tempc);
System.out.print(tempd);
Re: Simple Java Help: Inverse of 4 digit Number without Strings
danielcc produced the correct solution.
but just so you know, your original code actually works for 4 digits if you change Code:
C=(ID-((B*100)+A))/10
to Code:
C=(ID-((B*100)+(A*1000)))/10
Re: Simple Java Help: Inverse of 4 digit Number without Strings
Thanks everyone. I ended up solving it. The problem was with C, and I used an alternative method to "serotonin." Thanks for the input and I hope to be able to give back to the community as my knowledge continues to grow. Cheers.