<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    HelloWorld 善戰者,求之于勢,不責于人;故能擇人而任勢。

    知止而后有定,定而后能靜,靜而后能安,安而后能慮,慮而后能得。物有本末,事有終始。知所先后,則近道矣。

      BlogJava :: 首頁 ::  :: 聯系 ::  :: 管理 ::
      167 隨筆 :: 1 文章 :: 40 評論 :: 0 Trackbacks

    一著名軟件公司的java筆試算法題!       
       算法程序題:       
               該公司筆試題就1個,要求在10分鐘內作完。       
               題目如下:用1、2、2、3、4、5這六個數字,用java寫一個main函數,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"與"5"不能相連。

    循環方法
    class Test2 {
    public static void main(String args[]) {
       char[] c = { '1', '2', '2', '3', '4', '5' };
       for (int i = 0; i < c.length; i++) {
        for (int j = 0; j < c.length; j++) {
         if (i == j || (c[i] == '3' && c[j] == '5'))
          continue;
         for (int k = 0; k < c.length; k++) {
          if (k == i || k == j || (c[j] == '3' && c[k] == '5')
            || c[k] == '4') {
           continue;
          }
          for (int m = 0; m < c.length; m++) {
           if (m == k || m == i || m == j
             || (c[k] == '3' && c[m] == 5)) {
            continue;
           }
           for (int n = 0; n < c.length; n++) {
            if (n == m || n == k || n == i || n == j
              || (c[m] == '3' && c[n] == '5')) {
             continue;
            }
            for (int l = 0; l < c.length; l++) {
             if (l == n || l == m || l == k || l == j
               || l == i
               || (c[n] == '3' && c[l] == '5')) {
              continue;
             }
             System.out.println(c[i] + "" + c[j] + "" + c[k]
               + "" + c[m] + "" + c[n] + "" + c[l]);
            }
           }
          }
         }
        }
       }
    }
    }

     

    遞歸方法
    class Test2 {

    public int[] getNextDifPos(int[] before, int add) {
       int[] res = new int[before.length + 1];
       for (int i = 0; i < before.length; i++) {
        res[i] = before[i];
       }
       res[res.length - 1] = add;
       return res;
    }

    public int getNextPos(int[] pos) {
       for (int i = 0; i < pos.length; i++) {
        if (pos[i] != -1) {
         return i;
        }
       }
       return -1;
    }

    public void getStr(int[] before, char[] chars) {
       if (before.length == chars.length) {
        StringBuffer str = new StringBuffer();
        for (int i = 0; i < before.length; i++) {
         str.append(chars[before[i]]);
        }
        // 加判斷條件
        if (str.charAt(2) == '4' || str.indexOf("35") >= 0) {
         return;
        }
        System.out.println(str.toString());
       } else if (before.length < chars.length) {
        int[] pos = new int[chars.length];
        for (int i = 0; i < before.length; i++) {
         pos[before[i]] = -1;
        }
        int nextPos;
        while ((nextPos = getNextPos(pos)) != -1) {
         pos[nextPos] = -1;
         getStr(getNextDifPos(before, nextPos), chars);
        }
       }
    }

    public static void main(String args[]) {
       char[] c = { '1', '2', '2', '3', '4', '5' };
       int[] l = {};
       Test2 t = new Test2();
       t.getStr(l, c);
    }
    }



    </script>

    posted on 2007-08-13 19:01 helloworld2008 閱讀(332) 評論(0)  編輯  收藏 所屬分類: java邏輯題目
    主站蜘蛛池模板: 久久亚洲精品成人| 久久精品国产亚洲7777| 精品国产麻豆免费网站| 亚洲av无码乱码在线观看野外 | 亚洲AV美女一区二区三区| 在线观看亚洲人成网站| 亚洲av无码专区在线| 国产亚洲精品91| a在线观看免费视频| 日韩版码免费福利视频| 日韩亚洲精品福利| 亚洲AV永久无码精品水牛影视| 亚洲国产av一区二区三区丶| 国产精品亚洲精品日韩动图| 免费看一区二区三区四区 | 免费成人高清在线视频| 免费国产成人高清在线观看网站| 日韩电影免费在线| 亚洲精品无码永久中文字幕| 亚洲国产日韩在线一区| 特级毛片免费观看视频| 国产精品免费看久久久 | 国产性爱在线观看亚洲黄色一级片| 亚洲电影一区二区| 亚洲精华国产精华精华液 | 免费看搞黄视频网站| 无码人妻一区二区三区免费手机 | 亚洲最大黄色网址| 边摸边吃奶边做爽免费视频99| 免费无码毛片一区二区APP| 午夜小视频免费观看| 亚洲爆乳精品无码一区二区三区| 国产成人精品亚洲日本在线| 一个人晚上在线观看的免费视频 | 精品在线免费观看| 日韩毛片免费在线观看| 亚洲国产日韩一区高清在线| 日韩亚洲人成网站| 91成年人免费视频| 亚洲精品狼友在线播放| 亚洲国产精品ⅴa在线观看|