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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 暮色醉玄阳 中级黑马   /  2014-10-20 22:34  /  717 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

比赛有"输"、"平"、"赢"三种结果,比赛 N 场
打印出比赛的所有结果

  1. // 递归解法
  2. public class Test{

  3.     public static void main(String[] args){
  4.         int N = 3; // 比赛 N 场,可改变
  5.         showAll(N);
  6.     }

  7.         public static void showAll(int N) {
  8.                 String[] element = {"输", "平", "赢"}; // 比赛结果
  9.                 // 预存每种结果,只有一场比赛时,这样就可以了
  10.                 ArrayList<String> a1 = new ArrayList<String>();
  11.                 for (String e : element){
  12.                         a1.add(e);
  13.                 }
  14.                 // 两场以上的比赛时
  15.                 for (int i = 1; i < N; i++) {
  16.                         ArrayList<String> a2 = new ArrayList<String>();
  17.                         for (int j = 0; j < a1.size(); j++) {
  18.                                 for (String e : element){
  19.                                         a2.add(a1.get(j) + e);
  20.                                 }
  21.                         }
  22.                         a1 = a2;
  23.                 }
  24.                 // 遍历所有的结果
  25.                 for(String str : a1){
  26.                         System.out.println(str);
  27.                 }
  28.         }
  29. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马