Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Last Java programming questions

  1. Jul 5, 2005 #1
    Your task is to create a Java program with the name that asks the user for 5 integers in the main method that are between 0 and 9, inclusive. You should then write a method called “permutations” which accepts these 5 integers and prints all possible permutations for those numbers. (Hint: You will need 5 nested loops and an array to do this. Store the 5 numbers in an array inside the method and use the 5 loops to generate all possible array position combinations). Next, after this method is called, generate all possible permutations for (9 – 1st number), (9 – 2nd number), (9 – 3rd number), (9 – 4th number), and (9 – 5th number). For example, if the first time you entered the numbers (5, 6, 7, 8, 9), the second time the method is called the numbers will be (4, 3, 2, 1, 0). It is okay for this assignment if there are duplicate permutations that are printed.

    And the next part is do the same problem but make sure there are no duplicate permutations.

    i dont really know any discrete math, so any insight to this problem would be great.

    i tried to conceptualize it in terms of switching indices of an array, but i dont quite know how to formulate it.
  2. jcsd
  3. Jul 5, 2005 #2
    First, place the first element. This is your outer loop and you can place the outer element in five different positions: 0, 1, 2, 3, or 4. The outer loop counter can represent the current position of the first element.

    Then, place the second element. The second element can have four different positions because when you come to the position where you already have the first element, you have to skip it for the second element.

    Proceed similarly for the other elements.
  4. Jul 5, 2005 #3
    Actually, that method pretty much requires that you use a second array to store the temporary permutation as you go. If you want to just print it immediately without storing it again, then you can modify the method so that the x'th loop counter refers to the array index of the element to go at the x'th location.
  5. Jul 6, 2005 #4
    I like BicycleTree's suggestion, unless you're required to use nested loops for the learning value. Then again, you can use nested loops to print out a list of permutations of the letters a,b,c,d,e and then copy them into your program, having it store values for each letter. Perhaps you'll get extra credit for making it run faster :)
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook