java排列组合的算法 譬如我有(A,B,C,D),我想输出的结果是{A,B,C,D}{AB},{AC},{AD},{BC},{BD},{CD}{ABC},{ABD},{ACD},{BCD}{ABCD}
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/04 23:44:38
![java排列组合的算法 譬如我有(A,B,C,D),我想输出的结果是{A,B,C,D}{AB},{AC},{AD},{BC},{BD},{CD}{ABC},{ABD},{ACD},{BCD}{ABCD}](/uploads/image/z/2549898-18-8.jpg?t=java%E6%8E%92%E5%88%97%E7%BB%84%E5%90%88%E7%9A%84%E7%AE%97%E6%B3%95+%E8%AD%AC%E5%A6%82%E6%88%91%E6%9C%89%EF%BC%88A%2CB%2CC%2CD%EF%BC%89%2C%E6%88%91%E6%83%B3%E8%BE%93%E5%87%BA%E7%9A%84%E7%BB%93%E6%9E%9C%E6%98%AF%7BA%2CB%2CC%2CD%7D%7BAB%7D%2C%7BAC%7D%2C%7BAD%7D%2C%7BBC%7D%2C%7BBD%7D%2C%7BCD%7D%7BABC%7D%2C%7BABD%7D%2C%7BACD%7D%2C%7BBCD%7D%7BABCD%7D)
java排列组合的算法 譬如我有(A,B,C,D),我想输出的结果是{A,B,C,D}{AB},{AC},{AD},{BC},{BD},{CD}{ABC},{ABD},{ACD},{BCD}{ABCD}
java排列组合的算法 譬如我有(A,B,C,D),我想输出的结果是
{A,B,C,D}
{AB},{AC},{AD},{BC},{BD},{CD}
{ABC},{ABD},{ACD},{BCD}
{ABCD}
java排列组合的算法 譬如我有(A,B,C,D),我想输出的结果是{A,B,C,D}{AB},{AC},{AD},{BC},{BD},{CD}{ABC},{ABD},{ACD},{BCD}{ABCD}
import static java.lang.System.*;
import java.util.*;
public class Test{
public static void main(String...args){
ArrayList<String> l=new ArrayList<String>();
out.println("请输入要排序的字母,输入$结束:");
while(true){
Scanner sc=new Scanner(in);
String str=sc.nextLine();
if(str.equals("$"))break;
else
l.add(str);
}
String s="";
System.out.println(s.isEmpty());
f(s,l);
}
static void f(String s,ArrayList<String> l){
if(s.isEmpty()){
for(int i=0;i<l.size();i++){
out.println(s+l.get(i));
if(i==l.size()-1)return;
f(s+l.get(i),l);
}
}else{
char[]c=new char[1];
c[0]=s.charAt(s.length()-1);
String str=new String(c);
for(int i=l.lastIndexOf(str);i<l.size();i++){
out.println(s+l.get(i+1));
if(i==l.size()-2)return;
f(s+l.get(i+1),l);
}
}
}
}
纯手打 实验过了可以用..望采纳,有不懂的欢迎发问