求一些数的有机组合的算法 有一些数,不知道具体个数,客户端可以输入,求这些数的有机组合。即:不指定几个数组合,任意几个数都可以组合。只求算法,这些数放在什么类型的容器内不要求。用java或c代码写,可以只写代码急用,多谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public class Combination { public static void main(String[] args) { int[] nums = { 1, 2, 3, 4}; for (int i = 0; i < nums.length; i++) { printCom(nums,i + 1); } } public static void printCom(int[] nums, int count) {// nums为输入可选数集合,count输出其中几个 innerPriCom(nums, count, 0, count); } private static void innerPriCom(int[] nums, int count, int foIndex, int lgIndex) { if (foIndex == count) { for (int i = 0; i < count; i++) { System.out.print(nums[i] + " "); } System.out.println(); return; } innerPriCom(nums, count, foIndex + 1, lgIndex); for (int i = lgIndex; i < nums.length; i++) { nums[foIndex] ^= nums[i]; nums[i] ^= nums[foIndex]; nums[foIndex] ^= nums[i]; innerPriCom(nums, count, foIndex + 1, i + 1); nums[foIndex] ^= nums[i]; nums[i] ^= nums[foIndex]; nums[foIndex] ^= nums[i]; } }}测试结果:1 2 3 4 1 2 1 3 1 4 3 2 3 4 4 2 1 2 3 1 2 4 1 4 3 4 2 3 1 2 3 4 如果把输入的数据类型改为 char ,那该怎么做呢? 正则实现EL表达式的替换 请介绍一下《Java编程词典》 绘制椭圆问题。一个椭圆被rotate后的选中问题。 JSplitPane中Divider的定位问题 在JBuilder如何引用类库啊? eclipse ant rmic的问题? 数据库编写!! 请问JAVA怎么入门? 【急急急】 程序中插入数据库怎么会为0 很基础的Java语言编写 Java 中如何让文字浮在组件图标上 对字符串的一点疑问,谢谢
public class Combination { public static void main(String[] args) {
int[] nums = { 1, 2, 3, 4};
for (int i = 0; i < nums.length; i++) {
printCom(nums,i + 1);
}
} public static void printCom(int[] nums, int count) {// nums为输入可选数集合,count输出其中几个
innerPriCom(nums, count, 0, count);
} private static void innerPriCom(int[] nums, int count, int foIndex,
int lgIndex) {
if (foIndex == count) {
for (int i = 0; i < count; i++) {
System.out.print(nums[i] + " ");
}
System.out.println();
return;
}
innerPriCom(nums, count, foIndex + 1, lgIndex);
for (int i = lgIndex; i < nums.length; i++) {
nums[foIndex] ^= nums[i];
nums[i] ^= nums[foIndex];
nums[foIndex] ^= nums[i];
innerPriCom(nums, count, foIndex + 1, i + 1);
nums[foIndex] ^= nums[i];
nums[i] ^= nums[foIndex];
nums[foIndex] ^= nums[i];
}
}
}
测试结果:
1
2
3
4
1 2
1 3
1 4
3 2
3 4
4 2
1 2 3
1 2 4
1 4 3
4 2 3
1 2 3 4