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

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

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

    可愛的琪琪,開心快樂每一天
    溫馨小屋
    可愛的琪琪,開心快樂每一天
    posts - 7,comments - 39,trackbacks - 0
    ???? 網上看面試題時看到,摘抄別人寫的一個程序,并做了一些注解,翻譯為java版,記錄一下
    package?chenqi;

    /**
    ?*?要求:試編寫程序實現將八個皇后放置在國際象棋棋盤的無沖突的位置上的算法,并給出所有的解。
    ?*?提示:在國際象棋上放置皇后時,任何一個皇后的水平、豎直和斜45o都不能有另一個皇后。
    ?*?解決該問題采用逐次試探的方法,即采用遞歸調用putchess函數的方法。
    ?*?首先將第一個皇后放于第一行第一列,然后開始向下一行遞歸。
    ?*?每一步遞歸中,首先檢測待放置位置是否與已放置的皇后沖突,如不沖突,則進行下一行的放置,
    ?*?否則,選擇該行的下一個位置進行檢測。如整行的位置都沖突,則回到上一行,重新選擇位置源碼:
    ?*?
    @author?Administrator
    ?*
    ?
    */

    public?class?EightQueen?{

    ????
    //8根線代表8列,數組中每個對象存的值表示皇后在該列的位置
    ????int[]?line?=?new?int[8];
    ????
    int?answer=0;
    ????
    ????
    /**
    ?????*?判斷是否有沖突---用試探法,判斷是否與其他列有沖突
    ?????*?
    @param?t
    ?????*?
    @return?返回0表示沒有沖突,返回1表示有沖突
    ?????
    */

    ????
    private?int?Judge(int?t)?{
    ????????
    int?i,?n?=?0;
    ????????
    for?(i?=?0;?i?<?t;?i++)?{
    ????????????
    //第一種沖突情況:2列處于同一行沖突
    ????????????if?(line[i]?==?line[t])?{
    ????????????????n?
    =?1;
    ????????????????
    break;
    ????????????}

    ????????????
    //2列處于斜向上45度對角線沖突
    ????????????if?(line[i]?+?i?==?line[t]?+?t)?{
    ????????????????n?
    =?1;
    ????????????????
    break;
    ????????????}

    ????????????
    //2列處于斜向下45度對角線沖突
    ????????????if?(line[i]?-?i?==?line[t]?-?t)?{
    ????????????????n?
    =?1;
    ????????????????
    break;
    ????????????}

    ????????}

    ????????
    return?n;
    ????}

    ????
    ????
    /**
    ?????*?主要控制函數
    ?????*?
    @param?n
    ?????
    */

    ????
    private?void?control(int?n)
    ????
    {
    ????????
    int?t?=?8;
    ????????
    for?(line[n]?=?0;?line[n]?<?t;?line[n]++)?{
    ????????????
    if?(Judge(n)?==?1)
    ????????????????
    continue;
    ????????????
    else?if?(n?!=?7)
    ????????????????control(n?
    +?1);
    ????????????
    else
    ????????????????show();
    ????????}

    ????}

    ????
    ????
    /**
    ?????*?顯示擺放的結果
    ?????*?
    ?????
    */

    ????
    private?void?show()?{
    ????????
    int?i,?j;
    ????????
    for?(i?=?0;?i?<?8;?i++)?{
    ????????????
    for?(j?=?0;?j?<?8;?j++)?{
    ????????????????
    if?(line[i]?==?j)
    ????????????????????System.out.print(
    "Q");
    ????????????????
    else
    ????????????????????System.out.print(
    "*");
    ????????????}

    ????????????System.out.println();
    ????????}

    ????????answer
    ++;
    ????????System.out.println();
    ????????System.out.println(answer);
    ????}



    ????
    ????
    public?static?void?main(String[]?args)?{
    ????????EightQueen?s?
    =?new?EightQueen();
    ????????s.control(
    0);
    ????????System.out.println(s.answer);
    ????}

    ????
    }

    這段代碼感覺又簡潔又易懂,再次感謝他的作者:
    http://blog.chinaunix.net/u/26924/showart_228365.html
    posted on 2007-02-28 23:38 陳琪 閱讀(463) 評論(0)  編輯  收藏 所屬分類: java

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 97公开免费视频| 91成人在线免费视频| 国产成人免费一区二区三区| 亚洲综合激情视频| 毛片免费全部播放无码| 亚洲国产精品无码专区在线观看| 中文日本免费高清| 亚洲精品无码成人AAA片| 曰批全过程免费视频在线观看无码| 久久久久久久亚洲精品| 免费无码又爽又刺激高潮软件| 亚洲精品成人无码中文毛片不卡| a毛片免费在线观看| 亚洲Av熟妇高潮30p| 亚洲一区二区三区免费视频| 亚洲最大在线观看| 国产资源免费观看| 久久免费国产精品| 亚洲成在人天堂一区二区| 桃子视频在线观看高清免费完整 | 特级淫片国产免费高清视频| 亚洲精品美女久久久久久久| 亚洲AV网站在线观看| aa级毛片毛片免费观看久| 亚洲人成在线影院| 久久这里只有精品国产免费10| 色屁屁在线观看视频免费| 亚洲欧洲∨国产一区二区三区| 精品熟女少妇a∨免费久久| 亚洲一线产区二线产区区| 亚洲AV无码成H人在线观看| 国产啪精品视频网站免费尤物| 亚洲毛片免费视频| 国产公开免费人成视频| 大地资源在线资源免费观看| 亚洲国产成人久久| 伊人久久亚洲综合| 在线观看视频免费完整版| japanese色国产在线看免费| 亚洲国产精品成人精品小说 | 99久久99久久精品免费观看|