用JAVA列出A B C D E F所有可能的排序

 我来答
千里码君
2009-05-31 · 超过16用户采纳过TA的回答
知道答主
回答量:101
采纳率:0%
帮助的人:58万
展开全部
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();
}
}

没有用什么技巧,所以比较费劲.自己可以优化.
ad52482008
2009-05-31 · 超过17用户采纳过TA的回答
知道答主
回答量:97
采纳率:0%
帮助的人:0
展开全部
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();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lke820915
2009-05-31 · TA获得超过496个赞
知道小有建树答主
回答量:595
采纳率:0%
帮助的人:390万
展开全部
用循环不就可以实现吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yan007007
2009-05-31 · TA获得超过313个赞
知道小有建树答主
回答量:458
采纳率:0%
帮助的人:271万
展开全部
递归~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大漠小北
2009-05-31 · TA获得超过1138个赞
知道小有建树答主
回答量:365
采纳率:0%
帮助的人:458万
展开全部
可以出现5个A这样的么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式