OpenJudge 2 5 2990 符號三角形

2021-08-03 17:41:58 字數 816 閱讀 1725

符號三角形的第1行有n個由「+」和」

「-組成的符號 ,以後每行符號比上行少1個,2個同號下面是」+「,2個異號下面是」-「 。計算有多少個不同的符號三角形,使其所含」+「 和」-「 的個數相同。

n=7時的1個符號三角形如下:

+ + - + - + +

+ - - - - +

- + + + -

- + + -

- + -

- -+

每行1個正整數n<=24,n=0退出.

n和符號三角形的個數.

15

1619

200

sample output

15 1896

16 5160

19 32757

20 59984

思路簡析:

這道題我用了兩個函式,乙個用來深搜(其實也就離一般的遞迴不遠了),推出首層所有可能的情況,到達邊界(推完之後)就呼叫另乙個函式推整個三角形(類似構圖的思想,但不用構圖,計算正號或負號的個數,再判斷是否是整個三角形的一半就可以了)。至於具體製圖過程,在**中有詳細注釋(詳細看**)。另外注意一點,輸入

n的時候就可以判斷整個三角形的符號個數是否能被2整除,如果不能,則不能達到分成正號等於負號的情況,就直接按格式輸出0。還有一點,此題容易超時,能省則省。

**實現:

#include#includeint a[25][25],n,sum;

void f()

{ int i,j,s=0;

for(i=0;i

openjudge 數字統計

總時間限制 1000ms 記憶體限制 100000kb 描述輸入n個整數,統計每個數出現的次數.輸入 第一行是乙個整數n 1 n 1000 接下來n行每行乙個整數.輸出 第一行輸出總共有多少個不同的整數.接下來每行輸出乙個整數及這個整數出現的次數,用空格分隔.輸出的整數的順序與它們在輸入中第一次出現...

Openjudge 括號匹配

這個用了普通的迴圈,資料量不是很大的話效率還是不錯的,如果資料比較大的話,換別的方法可能效率會高一點。思路很簡單 以字串中是否還存在沒有匹配過的 作為這個字串已經處理完畢的標誌。1,讀入字串,並進行處理,把所有不是 和 的字元都轉換成空格。2,從開始掃瞄字串,如果掃瞄到 記錄 的位置,直到掃瞄到 3...

openjudge 移動路線

描述 桌子上有乙個m行n列的方格矩陣,將每個方格用座標表示,行座標從下到上依次遞增,列座標從左至右依次遞增,左下角方格的座標為 1,1 則右上角方格的座標為 m,n 小明是個調皮的孩子,一天他捉來乙隻螞蟻,不小心把螞蟻的右腳弄傷了,於是螞蟻只能向上或向右移動。小明把這只螞蟻放在左下角的方格中,螞蟻從...