用JAVA列出A B C D E F所有可能的排序
5个回答
展开全部
class Sort{
public Sort(){
char array[] = {'A','B','C','D','E','F'};
int sum = 0;
for(int a = 0; a < 6; a++){
//System.out.print(array[a]);
for(int b = 0; b < 6; b++ ){
if(array[b] == array[a]){
continue;
}
//System.out.print(array[b]);
for(int c = 0; c < 6; c++){
if(array[c] == array[b] || array[c] == array[a]){
continue;
}
//System.out.print(array[c]);
for(int d = 0; d < 6; d++){
if(array [d] == array[c] || array[d] == array[b] || array[d] == array[a]){
continue;
}
//System.out.print(array[d]);
for(int e = 0; e < 6; e++){
if(array [e] == array[d] || array[e] == array[c] || array[e] == array[b] || array[e] == array[a]){
continue;
}
//System.out.print(array[e]);
for(int f = 0; f < 6; f++){
if(array[f] == array[e] || array [f] == array[d] || array[f] == array[c] || array[f] == array[b] || array[f] == array[a]){
continue;
}
System.out.print(array[a]);
System.out.print(array[b]);
System.out.print(array[c]);
System.out.print(array[d]);
System.out.print(array[e]);
System.out.print(array[f]+"\n");
sum += 1;
}
}
}
}
}
System.out.println("\n");
}
System.out.println("所有排序的总和:"+sum);
}
public static void main(String args[]){
Sort objSort = new Sort();
}
}
没有用什么技巧,所以比较费劲.自己可以优化.
public Sort(){
char array[] = {'A','B','C','D','E','F'};
int sum = 0;
for(int a = 0; a < 6; a++){
//System.out.print(array[a]);
for(int b = 0; b < 6; b++ ){
if(array[b] == array[a]){
continue;
}
//System.out.print(array[b]);
for(int c = 0; c < 6; c++){
if(array[c] == array[b] || array[c] == array[a]){
continue;
}
//System.out.print(array[c]);
for(int d = 0; d < 6; d++){
if(array [d] == array[c] || array[d] == array[b] || array[d] == array[a]){
continue;
}
//System.out.print(array[d]);
for(int e = 0; e < 6; e++){
if(array [e] == array[d] || array[e] == array[c] || array[e] == array[b] || array[e] == array[a]){
continue;
}
//System.out.print(array[e]);
for(int f = 0; f < 6; f++){
if(array[f] == array[e] || array [f] == array[d] || array[f] == array[c] || array[f] == array[b] || array[f] == array[a]){
continue;
}
System.out.print(array[a]);
System.out.print(array[b]);
System.out.print(array[c]);
System.out.print(array[d]);
System.out.print(array[e]);
System.out.print(array[f]+"\n");
sum += 1;
}
}
}
}
}
System.out.println("\n");
}
System.out.println("所有排序的总和:"+sum);
}
public static void main(String args[]){
Sort objSort = new Sort();
}
}
没有用什么技巧,所以比较费劲.自己可以优化.
展开全部
public class FullArray ...{
public String[] s=...{"a","b","c","d","e","f"}
public void run()...{
int j2; //指向要对换的位置
int sLength=s.length;
for(int i=0;i<getP(s.length);i++)...{ //外层循环以便获取全部组合
String[] tempString=s.clone(); //由于对象传的是句柄也就是地址,因此为保证原来数组不变,必须使用对象克隆
for(int j=0;j<i;j++)...{ //i次的对换
j2=j%(sLength-1);
change(j2,tempString);
}
for(int l=0;l<sLength;l++)...{ //输出这一次对换后的排列
System.out.print(tempString[l]);
}
System.out.println();
}
}
public int getP(int i)...{ //获得全排列数all
int all=1;
for(int j=i;j>0;j--)...{
all=all*j;
}
return all;
}
public void change(int i,String[] tempString)...{//
String t="";
t=tempString[i];
tempString[i]=tempString[i+1];
tempString[i+1]=t;
}
public static void main(String[] args)...{
FullArray fa=new FullArray();
fa.run();
}
}
public String[] s=...{"a","b","c","d","e","f"}
public void run()...{
int j2; //指向要对换的位置
int sLength=s.length;
for(int i=0;i<getP(s.length);i++)...{ //外层循环以便获取全部组合
String[] tempString=s.clone(); //由于对象传的是句柄也就是地址,因此为保证原来数组不变,必须使用对象克隆
for(int j=0;j<i;j++)...{ //i次的对换
j2=j%(sLength-1);
change(j2,tempString);
}
for(int l=0;l<sLength;l++)...{ //输出这一次对换后的排列
System.out.print(tempString[l]);
}
System.out.println();
}
}
public int getP(int i)...{ //获得全排列数all
int all=1;
for(int j=i;j>0;j--)...{
all=all*j;
}
return all;
}
public void change(int i,String[] tempString)...{//
String t="";
t=tempString[i];
tempString[i]=tempString[i+1];
tempString[i+1]=t;
}
public static void main(String[] args)...{
FullArray fa=new FullArray();
fa.run();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用循环不就可以实现吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
递归~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以出现5个A这样的么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询