題目:假如有編號為1、2、3的3張撲克牌和編號為1、2、3的3個盒子。現在需要將這3張撲克牌分別放到3個盒子裡,並且每個盒子有且只能放一張撲克牌。那麼一共有多少種不同的排法?
**及注釋:
#include
//全域性變數,陣列元素值自動初始化為0
int a[10]
;//充當盒子編號
int book[10]
;//用book[i] = 0或1來表示撲克牌i是否在手上
int n;
void
dfs(
int step)
printf
("\n");
}for
(i=1
; i<=n; i++)}
}int
main()
思考:_ _ x _ _ = _ _ _ + _ _ _從1 ~ 9中填入9個數,每個數不相同,使等式成立。
答案:
全排列(深度優先搜尋)
description 列出所有數字1到數字n的連續自然數的排列,要求所產生的任一數字序列中不允許出現得復數字。input 輸入 n 1 n 9 output 由1 n組成的所有不重複的數字序列,每行乙個序列。sample input 3 sample output 1 2 3 1 3 2 2 1 ...
深度優先搜尋 全排列
題目要求 輸入乙個數n,輸出1 n的全排列。比如,輸入3,輸出123 132 213 231 312 321。解題思路 用深度優先搜尋,假設有n個盒子,從第乙個盒子開始依次放直到放到最後乙個盒子,期間用到遞迴呼叫。放到最後乙個後,再依次返回,進行重新組合,其中還用到標記陣列來判斷是否被用過。實現 i...
深度優先搜尋解決八皇后問題
八皇后問題是什麼 八皇后問題,是乙個古老而著名的問題,是回溯演算法的典型案例。該問題是國際西洋棋棋手馬克斯 貝瑟爾於1848年提出 在8 8格的西洋棋上擺放八個皇后,使其不能互相攻擊,即任意兩個皇后都不能處於同一行 同一列或同一斜線上,問有多少種擺法。高斯認為有76種方案。1854年在柏林的象棋雜誌...