黑马程序员技术交流社区

标题: 怎样给出C(n,k)所有组合情况? [打印本页]

作者: 支胜勇    时间: 2014-5-30 12:45
标题: 怎样给出C(n,k)所有组合情况?
如“ABCDEFGK”,从中随机选择k个字母,k=0,1,2,...,8,求给出所有的组合。
作者: 饥渴ing    时间: 2014-5-30 13:03
没看懂题目,能不能把例子的结果写下.让我知道是干什么.
作者: 支胜勇    时间: 2014-5-31 18:03
如字符串“ABCDEFGK”,从中选择一个的情况有,"A","B","C","D","E","F","G","K";选择两个的情况有:“AB”,"AC","AD","AE","AK","BC","BE",...等等
作者: 田富丰    时间: 2014-5-31 19:36
本帖最后由 田富丰 于 2014-5-31 20:19 编辑

你这个有点难!!同等大神吧!!
作者: zhuyanmei    时间: 2014-6-1 09:05
  1. import java.util.Scanner;


  2. public class test {

  3.         public static void main(String[] args) {
  4.                 String testStr="ABCDEFG";
  5.                 char[] c=testStr.toCharArray();
  6.                 String subStr="";
  7.                 Scanner read=new Scanner(System.in);
  8.                 //k---组合的长度
  9.                 int k=read.nextInt();
  10.                 getSubString(k,subStr,0,c);

  11.         }
  12.         /**
  13.          * 递归
  14.          *
  15.          */
  16.         public static void getSubString(int k,String subStr,int j,char[] c){
  17.                 if(subStr.length()>=k){
  18.                         System.out.print(subStr+"  ");
  19.                         return;
  20.                 }
  21.                 for(int i=j;i<c.length;i++){
  22.                         subStr=subStr+c[i];
  23.                         getSubString(k, subStr, i+1, c);
  24.                         subStr=subStr.substring(0, subStr.length()-1);
  25.                 }
  26.                 return;
  27.         }
  28.         
  29. }
  30. /**result:
  31. * 2 AB  AC  AD  AE  AF  AG  BC  BD  BE  BF  BG  CD  CE  CF  CG  DE  DF  DG  EF  EG  FG  
  32. */
复制代码





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