<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

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲乱码在线卡一卡二卡新区 | 成人性做爰aaa片免费看| 性做久久久久免费看| 亚洲精品动漫免费二区| 最近的免费中文字幕视频 | 无套内谢孕妇毛片免费看看| 国产jizzjizz免费视频| 精品在线视频免费| AV在线亚洲男人的天堂| 香蕉免费一级视频在线观看| 国产亚洲福利精品一区| 99视频精品全部免费观看| 亚洲国产精品一区二区久| 免费观看一级毛片| 男人j进女人p免费视频| 久久久久久a亚洲欧洲aⅴ| 一级毛片免费播放| 亚洲综合av一区二区三区不卡| 午夜免费福利在线观看| 日韩在线观看免费| 亚洲成在人线av| 美女视频黄的全免费视频| 亚洲精品无码久久久久A片苍井空| 国产免费av片在线无码免费看| 一本岛v免费不卡一二三区| 亚洲成人在线网站| 在线a人片天堂免费观看高清| 免费看一级一级人妻片| 亚洲v高清理论电影| 国产精品视频免费一区二区| 日韩在线观看免费完整版视频| 亚洲一级二级三级不卡| 狼友av永久网站免费观看| 中文字幕视频免费在线观看| 亚洲视频在线观看地址| 四虎永久免费观看| 99视频在线免费| 一区二区三区免费在线视频 | 色婷婷亚洲十月十月色天| 性感美女视频免费网站午夜| 一区二区三区免费精品视频 |