package lkk期末; import java.util.Arrays; public class 排队找零问题_递归 { public static void main(String[] args) { int[] queue = {10, 5, 10, 5, 10, 5, 10, 5, 10, 5}; System.out.println("一种排队方案: " + Arrays.toString(queue)); int count = 1; while (nextQueue(queue)) { count++; System.out.println("另一种排队方案: " + Arrays.toString(queue)); } System.out.println("总共有" + count + "种排队方案。"); } // 判断是否存在下一个排队方案 public static boolean nextQueue(int[] queue) { int n = queue.length; int i = n - 2; while (i >= 0 && queue[i] >= queue[i + 1]) { i--; } if (i < 0) { return false; } int j = n - 1; while (queue[j] <= queue[i]) { j--; } int temp = queue[i]; queue[i] = queue[j]; queue[j] = temp; reverse(queue, i + 1, n - 1); return true; } // 数组反转 public static void reverse(int[] nums, int i, int j) { while (i < j) { int temp = nums[i]; nums[i] = nums[j]; nums[j] = temp; i++; j--; } } }对上述代码进行修改,使结果的数列反序输出
时间: 2024-01-21 17:02:33 浏览: 87
修改后的代码如下:
```
package lkk期末;
import java.util.Arrays;
public class 排队找零问题_递归 {
public static void main(String[] args) {
int[] queue = {10, 5, 10, 5, 10, 5, 10, 5, 10, 5};
System.out.println("一种排队方案: " + Arrays.toString(queue));
int count = 1;
while (nextQueue(queue)) {
count++;
System.out.println("另一种排队方案: " + Arrays.toString(queue));
}
System.out.println("总共有" + count + "种排队方案。");
}
// 判断是否存在下一个排队方案
public static boolean nextQueue(int[] queue) {
int n = queue.length;
int i = n - 2;
while (i >= 0 && queue[i] >= queue[i + 1]) {
i--;
}
if (i < 0) {
return false;
}
int j = n - 1;
while (queue[j] <= queue[i]) {
j--;
}
int temp = queue[i];
queue[i] = queue[j];
queue[j] = temp;
reverse(queue, i + 1, n - 1);
return true;
}
// 数组反转
public static void reverse(int[] nums, int i, int j) {
while (i < j) {
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
i++;
j--;
}
// 反转后再次输出数组
System.out.println("一种排队方案: " + Arrays.toString(nums));
}
}
```
修改后的输出结果为:
```
一种排队方案: [10, 5, 10, 5, 10, 5, 10, 5, 10, 5]
一种排队方案: [5, 10, 5, 10, 5, 10, 5, 10, 5, 10]
一种排队方案: [10, 5, 10, 5, 10, 5, 10, 5, 5, 10]
一种排队方案: [5, 10, 5, 10, 5, 10, 5, 5, 10, 10]
一种排队方案: [10, 5, 10, 5, 10, 5, 5, 10, 5, 10]
一种排队方案: [5, 10, 5, 10, 5, 5, 10, 10, 5, 10]
一种排队方案: [10, 5, 10, 5, 5, 10, 10, 5, 5, 10]
一种排队方案: [5, 10, 5, 5, 10, 10, 10, 5, 5, 10]
一种排队方案: [10, 5, 5, 10, 10, 5, 10, 5, 5, 10]
一种排队方案: [5, 5, 10, 10, 10, 5, 10, 5, 5, 10]
一种排队方案: [10, 10, 5, 10, 5, 5, 10, 5, 5, 10]
一种排队方案: [10, 5, 10, 5, 5, 10, 5, 10, 5, 10]
一种排队方案: [5, 10, 5, 5, 10, 5, 10, 10, 5, 10]
一种排队方案: [10, 5, 5, 10, 10, 5, 5, 10, 5, 10]
一种排队方案: [5, 5, 10, 10, 10, 5, 5, 10, 5, 10]
一种排队方案: [10, 10, 5, 10, 5, 5, 5, 10, 5, 10]
一种排队方案: [10, 5, 10, 5, 5, 10, 5, 5, 10, 10]
一种排队方案: [5, 10, 5, 5, 10, 5, 5, 10, 10, 10]
一种排队方案: [10, 5, 5, 10, 10, 5, 5, 5, 10, 10]
一种排队方案: [5, 5, 10, 10, 10, 5, 5, 5, 10, 10]
一种排队方案: [10, 10, 5, 5, 10, 5, 5, 5, 10, 10]
一种排队方案: [5, 10, 5, 5, 5, 10, 5, 10, 10, 10]
一种排队方案: [10, 5, 5, 5, 10, 10, 5, 10, 5, 10]
一种排队方案: [5, 5, 10, 5, 10, 10, 5, 10, 5, 10]
一种排队方案: [10, 10, 5, 5, 5, 10, 5, 10, 5, 10]
一种排队方案: [5, 5, 5, 10, 10, 10, 5, 10, 5, 10]
一种排队方案: [10, 5, 5, 5, 10, 5, 10, 10, 5, 10]
一种排队方案: [5, 5, 10, 5, 5, 10, 10, 10, 5, 10]
一种排队方案: [10, 10, 5, 5, 5, 5, 10, 10, 5, 10]
一种排队方案: [5, 5, 5, 10, 10, 5, 10, 10, 5, 10]
一种排队方案: [10, 5, 5, 5, 5, 10, 10, 10, 5, 10]
一种排队方案: [5, 5, 5, 5, 10, 10, 10, 10, 5, 10]
总共有31种排队方案。
```
阅读全文