用122345六个数用Java写一个main函数打印出所有不同的排序

如题所述

public static void main(String[] args) {
int[] array = { 1, 2, 2, 3, 4, 5 };
int index = 0; // 新数组下标
int temp = 0; // 每一个数
int length = 0; // 新数组长度
int[] newArray;// 新数组

// 求出新数组长度
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length; j++) {
for (int k = 0; k < array.length; k++) {
for (int m = 0; m < array.length; m++) {
for (int n = 0; n < array.length; n++) {
for (int x = 0; x < array.length; x++) {
if (i != j && j != k && i != k && i != m
&& j != m && k != m && i != n && j != n
&& k != n && m != n && i != x && j != x
&& k != x && m != x && n != x) {
length++;
}
}
}
}
}
}
}
newArray = new int[length];// 确定新数组长度

// 为新数组赋值
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length; j++) {
for (int k = 0; k < array.length; k++) {
for (int m = 0; m < array.length; m++) {
for (int n = 0; n < array.length; n++) {
for (int x = 0; x < array.length; x++) {
if (i != j && j != k && i != k && i != m
&& j != m && k != m && i != n && j != n
&& k != n && m != n && i != x && j != x
&& k != x && m != x && n != x) {
temp = array[i] * 100000 + array[j] * 10000
+ array[k] * 1000 + array[m] * 100
+ array[n] * 10 + array[x];
newArray[index] = temp;
index++;
}
}
}
}
}
}
}

//遍历新数组,遇到相同的值,只留其中一个,其他全部为0
for (int i = 0; i < newArray.length; i++) {
for (int j = i; j < newArray.length - 1; j++) {
if (newArray[i] == newArray[j + 1]) {
newArray[j + 1] = 0;
}
}
}

//输出所有不为0的数字,就是最后结果
for (int i = 0; i < newArray.length; i++) {
if (newArray[i] != 0) {
System.out.print(newArray[i] + " ");
}
}
}

//所有代码,我已经格式化过了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-10
import java.io.*;
class test{
test(String s){
char[] c=new char[s.length()];
c=s.toCharArray();
System.out.println("排列如下:");
setChar(c,0,s.length()-1);
}
void setChar(char[] cc,int a,int b){
String ss=String.valueOf(cc);
if(a==b)show(cc);
for (int i=a; i<b+1;i++){
char t=cc[a];cc[a]=cc[i];cc[i]=t;
setChar(cc,a+1,b);
cc=ss.toCharArray();
}
}
void show(char[] chars){
System.out.print(String.valueOf(chars)+"\t");
}
}
public class AllSet{
public static void main (String[] args) {
new test("123456");
}
}
第2个回答  2010-06-10
算法题?很少研究。