人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統(tǒng)下載站 > 技術開發(fā)教程 > 詳細頁面

8皇后問題的高效解法-遞歸版

8皇后問題的高效解法-遞歸版

更新時間:2022-08-27 文章作者:未知 信息來源:網(wǎng)絡 閱讀次數(shù):

//8 Queen 遞歸算法
//如果有一個Q 為 chess[i]=j;
//則不安全的地方是 k行  j位置,j+k-i位置,j-k+i位置

class Queen8{


  static final int QueenMax = 8;
  static int oktimes = 0;
  static int chess[] = new int[QueenMax];//每一個Queen的放置位置


  public static void main(String args[]){
    for (int i=0;i<QueenMax;i++)chess[i]=-1;
    placequeen(0);
    System.out.println("\n\n\n八皇后共有"+oktimes+"個解法    made by yifi 2003");
  }


  public static void placequeen(int num){ //num 為現(xiàn)在要放置的行數(shù)
    int i=0;
    boolean qsave[] = new boolean[QueenMax];
    for(;i<QueenMax;i++) qsave[i]=true;
    
    //下面先把安全位數(shù)組完成
    i=0;//i 是現(xiàn)在要檢查的數(shù)組值
    while (i<num){
      qsave[chess[i]]=false;
      int k=num-i;
      if ( (chess[i]+k >= 0) && (chess[i]+k < QueenMax) ) qsave[chess[i]+k]=false;
      if ( (chess[i]-k >= 0) && (chess[i]-k < QueenMax) ) qsave[chess[i]-k]=false;
      i++;
    }
    //下面歷遍安全位
    for(i=0;i<QueenMax;i++){
      if (qsave[i]==false)continue;
      if (num<QueenMax-1){
        chess[num]=i;
        placequeen(num+1);
      }
      else{ //num is last one
      chess[num]=i;
      oktimes++;
      System.out.println("這是第"+oktimes+"個解法 如下:");
      System.out.println("第n行:  1 2 3 4 5 6 7 8");
      
      for (i=0;i<QueenMax;i++){
       String row="第"+(i+1)+"行:  ";
       if (chess[i]==0);
       else
        for(int j=0;j<chess[i];j++) row+="--";
        row+="++";
        int j = chess[i];
        while(j<QueenMax-1){row+="--";j++;}
       System.out.println(row);
      }
      }
    }
  //歷遍完成就停止
  }
}

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 洪泽县| 金堂县| 茂名市| 广安市| 宾川县| 墨江| 察哈| 鄂伦春自治旗| 大新县| 工布江达县| 鄂托克前旗| 阿城市| 鄂温| 胶南市| 准格尔旗| 永济市| 团风县| 德阳市| 平顺县| 来宾市| 布尔津县| 自贡市| 乐山市| 保德县| 隆安县| 大理市| 巴彦县| 五寨县| 奎屯市| 通辽市| 昌江| 河东区| 房产| 手机| 祥云县| 邳州市| 柳林县| 辰溪县| 武穴市| 霍州市| 广东省|