<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

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


    網站導航:
     
    主站蜘蛛池模板: 羞羞漫画在线成人漫画阅读免费| 亚洲制服丝袜第一页| 一级a性色生活片久久无少妇一级婬片免费放 | 97视频免费观看2区| 亚洲影院在线观看| 曰批视频免费40分钟试看天天| 91精品国产亚洲爽啪在线观看| 99久久免费精品视频| 亚洲精品在线视频观看| 无码av免费毛片一区二区| 亚洲一区二区观看播放| 国产真人无遮挡作爱免费视频| 特级毛片A级毛片100免费播放| 亚洲?V乱码久久精品蜜桃 | 国产精品四虎在线观看免费| 午夜亚洲国产精品福利| 国产成人yy免费视频| 国产成人亚洲合集青青草原精品| 好吊妞788免费视频播放| 男人j进女人p免费视频| 亚洲人成人网站色www| 59pao成国产成视频永久免费 | 久久精品国产亚洲av麻豆| 120秒男女动态视频免费| 亚洲欧美日韩一区二区三区| 亚洲精品第一国产综合境外资源 | 成人免费一区二区三区| 亚洲成在人线av| 国产精品免费αv视频| 中文字幕在线观看亚洲| 成人五级毛片免费播放| 一级做a爰性色毛片免费| 91亚洲国产在人线播放午夜| 热99re久久免费视精品频软件| 久久www免费人成精品香蕉| 亚洲国产精品yw在线观看| 免费又黄又硬又爽大片| 久久国产乱子伦免费精品| 老司机午夜在线视频免费观| 亚洲人成电影在线天堂| 国产乱人免费视频|