A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 支胜勇 中级黑马   /  2014-5-30 12:45  /  1407 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如“ABCDEFGK”,从中随机选择k个字母,k=0,1,2,...,8,求给出所有的组合。

4 个回复

倒序浏览
没看懂题目,能不能把例子的结果写下.让我知道是干什么.
回复 使用道具 举报
如字符串“ABCDEFGK”,从中选择一个的情况有,"A","B","C","D","E","F","G","K";选择两个的情况有:“AB”,"AC","AD","AE","AK","BC","BE",...等等
回复 使用道具 举报
本帖最后由 田富丰 于 2014-5-31 20:19 编辑

你这个有点难!!同等大神吧!!
回复 使用道具 举报
  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. */
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马