黑马程序员技术交流社区

标题: 递归求排列组合问题 [打印本页]

作者: 李知伦    时间: 2012-8-11 00:36
标题: 递归求排列组合问题
之前看到一个题目,想到一种算法,但是没成功(求和的时候)
我描述一下大概,接受用户输入n个正整数,从中取x个的数相乘(不能重复取,但是值可以相同),取尽所有可能的组合,并把积相加.就是类似我们学的排列组合
用递归方法实现


作者: 来明坤    时间: 2012-8-11 01:32
import java.io.*;

public class Test1 {

public static void main(String[] args) {
   select(2);
}
  
private static void select(int k) {
   char[] result = new char[k];
   subselect(0, 1, result, k);

}
  
private static void subselect(int head, int index, char[] r, int k) {
     for (int i = head; i < a.length + index - k; i++) {
     if (index < k) {
     r[index - 1] = a;
     System.out.println("i="+(i)+";index="+(index));
     subselect(i + 1, index + 1, r, k);
    }
    else if (index == k) {
       r[index - 1] = a;
       System.out.println(";i="+(i)+";index="+(index)+";index==k:"+(index==k));
       System.out.print(i+"===");
      System.out.println(r);
      subselect(i + 1, index + 1, r, k);
    } else {
     System.out.println("++");
     return;
    }

   }
}

private static char[] a = { 'a', 'b', 'c' };
}      // 我收藏的代码  比较难以理解   你看着吸收吧   呵呵





作者: 李知伦    时间: 2012-8-11 15:29
LS的我有了,只能实现字符的排列组合




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2