用遞迴的方法和非遞迴方法解決8皇后問題

2022-08-30 15:33:18 字數 367 閱讀 9381

問題描述:

在8x8格的西洋棋上擺放八個皇后,使其不能互相攻擊,即任意兩個皇后都不能處於同一行、同一列或同一斜線上,問有多少種擺法。

使用遞迴的方法解決問題:

#includeusing namespace std;

const int n = 8;

int num = 0;

bool check(int *a,int n) //檢查第n個皇后放的位置是否合適

return true;

}int queen(int *a,int n) //進行遞迴的函式 }

}int main()

{ int a[n];

queen(a,0);

cout<

編輯距離遞迴方法和非遞迴方法

編輯距離,是指將乙個字串通過修改,刪除,增加三種操作變化為另外乙個字串,編輯距離問題 levensthein 這個過程中要求這三種運算元量最少。編輯距離公式如下 由此公式可以推導出來遞迴方法 該方法如下 include include include namespace wscad template...

漢諾塔遞迴方法和非遞迴方法

三個盤子為a,b,c,其中c是中介盤,我們要遵守移動規則將a上的盤子要全部通過b移動到c。include includeusing namespace std define maxsize 50 typedef struct elemtype 順序棧中元素型別 typedef struct stac...

消除遞迴的方法 遞迴轉非遞迴

利用棧來人工模擬系統堆疊的操作過程,其實這種方法本質上還是遞迴,只不過本來計算機幫你完成的事由你自己做了,所以這對演算法的優化效果不明顯。如果遞迴函式是尾遞迴 在函式末尾遞迴呼叫本函式的方式,且遞迴呼叫語句只有乙個 就可以很容易的將遞迴消除,用推導出來的數學公式代替。其效率與迴圈的 執行效率基本上是...