Log In · Register

 
Java/ApComputerSci., User input programs
SkaironFrenzy
post Sep 15 2005, 07:34 PM
Post #1


HOY!!!!!
****

Group: Member
Posts: 268
Joined: Oct 2004
Member No: 55,098



{OK i'm pretty much new to Java and the computer language thing, but I do understand the fundamentals.}

Due:Wednesday, 21,2005

Problem:

Write an application program that inputs one number consisting of four digits from the user; separates the number into its individual digits and prints the separated digits from one another. For example, if the user types in the number 4239, the program should print 4 2 3 9.(hint:Use Mod(%) and Division(/).

Ok this is what I got so far:

import javax.swing.JOptionPane;

public class Separate
{
public static void main(String[] args)
{
String number;
int numberOne;
double mod;
double division;

number=JOptionPane.showInputDialog("Enter 4 numbers");
numberOne= Integer.parseInt(number);


System.exit(0);
}
}


(I tried putting a code box but it screwed up the code.)
Its just the foundation. I cant figure out the rest to separate the numbers. Thanks you all for your help.
 
 
Start new topic
Replies
*mipadi*
post Sep 15 2005, 10:08 PM
Post #2





Guest






Okay. Well, here's a rough algorithm you could work with:

CODE
4239

1. Divide by 1000                .4239
2. Multiply by 10                4.239
3. Truncate                      4
4. Multiply old value by 1000    239
5. Divide by 100                 2.39
6. Truncate                      2
7. Multiply old value by 100     39
8. Divide by 10                  3.9
9. Truncate                      3
10. Multiply old value by 10     9


Edit
Okay...here's a program I whipped up really quickly that should work:

CODE
public class SplitNum2
{
   public static void main(String[] args)
   {
       TextReader keyboard = new TextReader();

       System.out.print("Enter number: ");
       int num = keyboard.readInt();

       double tmp;
       int thousands, hundreds, tens, ones;
       tmp = num / 1000.0;
       tmp = tmp * 10.0;
       thousands = (int) tmp;
       tmp = tmp * 1000.0;
       tmp = tmp / 100.0;
       hundreds = (int) tmp;
       tmp = tmp * 100.0;
       tmp = tmp / 10.0;
       tens = (int) tmp;
       tmp = tmp * 10.0;
       ones = (int) tmp;

       System.out.println(thousands + " " + hundreds + " " + tens + " " + ones);
   }
}

It's probably not necessary to copy num into tmp, but I didn't know if I'd want to use num later (I ended up not using it) so I wanted to retain a copy of the original number.

Also, again, this is a command-line applet, but you can just convert it for use in something with a Swing interface.

The algorithm is noted above, and the implementation here; if you have any additional questions about how the program functions, feel free to ask.

Also, the program isn't optimized; for instance, in the algorithm, lines 4 and 5 call for multiplying by 1000 and dividing by 100; clearly they could be combined into one line and just multiply the old value by 10. Doing this could probably allow you to put everything into a loop, so it could handle numbers bigger or smaller than 4 digits (but since you know you are inputting a 4 digit number, this application will work in this instance). Again, if you really want to impress your teacher, you should probably go through and optimize the code I demonstrated. _smile.gif But that's something you can fix on your own.

This post has been edited by mipadi: Sep 15 2005, 10:23 PM
 

Posts in this topic
SkaironFrenzy   Java/ApComputerSci.   Sep 15 2005, 07:34 PM
mipadi   Okay, well, I didn't feel like building an int...   Sep 15 2005, 09:13 PM
SkaironFrenzy   hmm. thats nice. thank you.but there is no other w...   Sep 15 2005, 09:48 PM
mipadi   Okay. Well, here's a rough algorithm you could...   Sep 15 2005, 10:08 PM
SkaironFrenzy   lol. thanks -ALOT. i pretty much get it now. EDIT...   Sep 16 2005, 05:13 AM
mzkandi   ^ Ok. Topic Closed.   Oct 6 2005, 01:31 PM


Closed TopicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members: