java代码写排列组合 java实现组合排列

java实现排列组合char[] a={'1','2','3','4'};
String b= "";
String c= "";
for (int i = 0; ia.length-1; i) {
b="[" a[i] "," a[i 1] "]";
c =b;
}
System.out.println(c);
输入任意字符序列,输出所有两位数的排列组合JAVA代码?import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 创建Scanner对象,用于获取用户输入
Scanner scanner = new Scanner(System.in);
System.out.print("请输入任意字符序列:");
// 获取用户输入的字符序列
String str = scanner.nextLine();
// 循环遍历字符序列中的每个字符
for (int i = 0; istr.length(); i) {
// 获取字符序列中的第i个字符
char c1 = str.charAt(i);
// 循环遍历字符序列中的每个字符
for (int j = 0; jstr.length(); j) {
// 获取字符序列中的第j个字符
char c2 = str.charAt(j);
// 如果第i个字符不等于第j个字符,则输出它们的排列
if (i != j) {
System.out.println(c1""c2);
}
}
}
}
}
用Java编写程序;求字母A和B的各种排列组合(递归思想)//PS:不太明白函数中String s的意义,所以忽略了 。
import java.util.ArrayList;
import java.util.List;

public class CompoundString {
private static void generate(int n,ListString results) {
if(n==1){
return;
}
ListString resultsTemp_A = new ArrayListString();
ListString resultsTemp_B = new ArrayListString();
for(String str : results){
String temp_A = str "A";
resultsTemp_A.add(temp_A);
String temp_B = str "B";
resultsTemp_B.add(temp_B);
}
//此处results引用不能改变,否则任何修改对main函数中的results都无效
results.clear();
results.addAll(resultsTemp_A);
results.addAll(resultsTemp_B);
generate(n-1, results);// recursive
}
public static void main(String[] args) {
ListString results = new ArrayListString();
results.add("A");
results.add("B");
generate(8, results);
for(String str : results){
System.out.println(str);
}
}
}
java实现排列组合输出完成了一种实现 , 发给你参考下 。
不过感觉应该还有更好的办法,有时间我会继续研究下.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class TestQiuhe {
//集合a{1,2,3,5,7,10},输出不多于4个元素(不重复)的加和为22的组合 。
public static void main(String[] args) {
int[] nums={1,2,3,5,7,10};
int l = nums.length;
Listint[] results=new ArrayListint[]();
for(int i1=0;i1l;i1){
for(int i2=0;i2l;i2){
if(nums[i1]==22){
results.add(new int[]{nums[i1]});
}
if(i2!=i1){
if(nums[i1] nums[i2]==22){
results.add(new int[]{nums[i1],nums[i2]});
}
for(int i3=0;i3l;i3){
if(i3!=i1i3!=i2){
if(nums[i1] nums[i2] nums[i3]==22){
results.add(new int[]{nums[i1],nums[i2],nums[i3]});
}
for(int i4=0;i4l;i4){
if(i4!=i1i4!= i2i4!=i3){
if(nums[i1] nums[i2] nums[i3] nums[i4]==22){
results.add(new int[]{nums[i1],nums[i2],nums[i3],nums[i4]});
}
}
}
}
}
}
}
}
//去重
SetString reSet=new HashSet();
for(int[] r:results){
Arrays.sort(r);
reSet.add(Arrays.toString(r));
}
System.out.println("一共得到结果集:" reSet.size());
System.out.println(reSet);
}
}
运行结果:
一共得到结果集:2
[[5, 7, 10], [2, 3, 7, 10]]
【java代码写排列组合 java实现组合排列】关于java代码写排列组合和java实现组合排列的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读