符號三角形 回溯演算法 C

2021-09-29 02:12:39 字數 992 閱讀 3943

題目描述:符號三角問題:下圖是由14個「+」和14個「-」組成的符號三角形。2個同號下面都是「+」,2個異號下面都是「-」。

在一般情況下,符號三角形的第一行有n個符號。符號三角形問題要求對於給定的n,計算有多少個不同的符號三角形,使其所含的「+」和「-」的個數相同。(參考計算機演算法設計與分析第五版-王曉東)

**如下:

#include

#include

#include

#include

#include

using namespace std;

int sum =

0, n, ret =

0, half;

//sum為-號的數量,n為第一排符號數,count為滿足條件三角形個數,half為符號的總數量

int s[

500]

[500];

void

solve

(int t,

int sum)

for(

int i =

0; i <

2; i++

)solve

(t +

1, sum + i)

;for

(int j =

2; j <= t; j++

)//撤銷之前操作,以便進行下一種排列

sum -

= s[j]

[t - j +1]

;}}int

main()

system

("pause");

return0;

}

示例輸入輸出:

學習中,歡迎交流

符號三角形之回溯演算法

下圖是由 14個 和 14個 組成的符號三角形。2個同號下面都是 2個異號下面都是 個符號。符號三角形問題要求對於給定的 n,計算有多少個不同的符號三角形,使其所含的 和 的個數相同。include define max 100 int arr max max int n int sum 2 int...

演算法設計 符號三角形(回溯)

給定第一行的符號 只有 數目n,每行比上一行數目少一 形成乙個倒三角 2個相同符號下面為 號,2個不同符號下面為 號,要求有多少種情況使得兩種符號數目相同。第一行為7的符號三角形之一 我們發現 由於只有兩種符號,所以我們可簡化為0 1形式 總符號數為n n 1 2,如果總數為奇數,那麼一定不可能符號...

回溯之符號三角形問題

符號三角形問題 下圖是由14個 和 14個 組成的符號三角形。2個同號下面都是 2個異號下面都是 在一般情況下,符號三角形的第一行有 n個符號。符號三角形問題要求對於給定的 n,計算有多少個不同的符號三角形,使其所含的 和 的個數相同。解向量 用n元組x 1 n 表示符號三角形的第一行。可行性約束函...