在JAVA中 ABCD的自由组合排列有几种,并打印出来 用递归的算法,求ABCD自由组合后有几种组合结果,各位哥哥,姐姐有想法吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 int 排列方法(string){ if(null == string || 0 == string.length()) return 0; while(string的长度>1) { return 排列方法(string.substring(1)) *2; } //length = 1 return 1;} 不好意思,我没说明白,是组合方式的结果比如 ABCD 四个的组合方式打印出来,ACBD,ABDC,DBAC...用递归打印出来. 请看看这个是不是 你要的结果是:0--ABCD . 1--ABDC . 2--ACBD . 3--ACDB . 4--ADBC . 5--ADCB . 6--BACD . 7--BADC . 8--BCAD . 9--BCDA . 10--BDAC . 11--BDCA . 12--CABD . 13--CADB . 14--CBAD . 15--CBDA . 16--CDAB . 17--CDBA . 18--DABC . 19--DACB . 20--DBAC . 21--DBCA . 22--DCAB . 23--DCBA . 代码是:import java.util.*;public class TestABCD { Vector all=new Vector(); String strA = null; String strB = null; String results = null; String passThen=null; public void getABCD(String wawa,String passBefore) { for (int i = 0; i < wawa.length(); i++) { strA = wawa.charAt(i) + "";//第一i个字母 strB = wawa.replaceFirst(strA, "");//去掉后剩下的字母 passThen=passBefore+strA;//将要向下一个节点传的字符串 if (wawa.length()>2) { getABCD(strB,passThen); }else if(wawa.length()==2){ results=passThen+strB;//得到结果 all.add(results);//放入集合 } } } public void see(){//查看结果 for(int i=0;i<all.size();i++){ String result=(String)all.elementAt(i); System.out.println(" "+result+" ----------"+i); } } public static void main(String[] args) { TestABCD t = new TestABCD(); t.getABCD("ABCD",""); t.see();//查看结果 }} 线程资源共享问题。。 java问题 一段小代码的疑惑 请帮我看一下:用java语言写的BUTTON事件处理,背景色总是红色,哪里有点点小问题呢~~~~~~ 如何从一个类向另一个类发消息 htc 转换成 js 字节补位操作,急急急急急急急急急 請問怎麼樣得到 操作操作系統機器 的名稱 第一个java程序,怎么运行的时候老是报错? together中可以打包生成jar吗,怎么做?(together6) 什么是桩代码? 关于如何实现一个时钟动画的问题?
{
if(null == string || 0 == string.length()) return 0;
while(string的长度>1)
{
return 排列方法(string.substring(1)) *2;
}
//length = 1
return 1;
}
结果是:0--ABCD . 1--ABDC . 2--ACBD . 3--ACDB . 4--ADBC . 5--ADCB . 6--BACD . 7--BADC . 8--BCAD . 9--BCDA . 10--BDAC . 11--BDCA . 12--CABD . 13--CADB . 14--CBAD . 15--CBDA . 16--CDAB . 17--CDBA . 18--DABC . 19--DACB . 20--DBAC . 21--DBCA . 22--DCAB . 23--DCBA .
代码是:import java.util.*;public class TestABCD {
Vector all=new Vector();
String strA = null;
String strB = null;
String results = null;
String passThen=null;
public void getABCD(String wawa,String passBefore) {
for (int i = 0; i < wawa.length(); i++) { strA = wawa.charAt(i) + "";//第一i个字母
strB = wawa.replaceFirst(strA, "");//去掉后剩下的字母
passThen=passBefore+strA;//将要向下一个节点传的字符串
if (wawa.length()>2) {
getABCD(strB,passThen);
}else if(wawa.length()==2){
results=passThen+strB;//得到结果
all.add(results);//放入集合
}
}
}
public void see(){//查看结果
for(int i=0;i<all.size();i++){
String result=(String)all.elementAt(i);
System.out.println(" "+result+" ----------"+i);
}
}
public static void main(String[] args) {
TestABCD t = new TestABCD();
t.getABCD("ABCD","");
t.see();//查看结果
}
}