用遞迴解決蛇形填數的問題

2021-08-04 18:38:21 字數 760 閱讀 8318

題目:來自南陽理工學院oj

我們分析一下這個蛇形矩陣的形成過程:先由右側起第一列由上到下填寫(矩陣元素數字遞增),到達規定的個數後,自右向左填寫(矩陣元素數字遞增),到達規定個數後,由下到上填寫(矩陣元素數字遞增),此時,矩陣的側面與底已經填寫完畢。然後填寫剩餘部分,此時填數呈現規律:先由左到右填,到盡頭後由上到下,再由右向左,再由下到上,到矩陣中所有元素都被填滿為止。在側面與底填寫完畢的情況下,填寫剩餘部分可以看成乙個遞迴的過程。都是左-右,上-下,右-左,下-上的過程。

我們分析一下遞迴的退出條件:矩陣中所有元素都填寫完畢,此時開始寫**。

分兩步:1 :填寫側面與底部

2:填寫剩餘部分(遞迴)

#includeusing namespace std;

int a[1000][1000]=;

int init(int n)

for(int k=n-2;k>=0;k--)

return i;

}int drawsnake(int n,int i)

else

else}}

}}}}

} } }

void show(int n)

附上時間以及記憶體:

簡單遞迴之蛇形填數

時間限制 1000 ms 記憶體限制 65535 kb 問題描述 peter喜歡玩字母遊戲,於是他編寫了乙個有趣的遊戲。遊戲規則是在乙個 n 1 n的 裡填寫字母,規則 對於每個輸入的n,由 n 1 n的字母區域的左上角開始,從字母a開始逆時針填充乙個字母區域,乘積若超過26繼續由新一組的a b c...

質數的蛇形填數

時間限制 1 sec 記憶體限制 128 mb 提交 49 解決 13 提交 狀態 討論版 萌萌噠孟孟學長 參加去年的訓練的時候,蛇形矩陣那題被他分分鐘秒掉,於是他決定出乙個更難的題目,要求矩陣裡的每個數都是質數 而且,蛇形的規則也有變化 如2 3矩陣 2 13 11 3 5 7 再如3 4 的矩陣...

開燈問題 蛇形填數 豎式問題

程式3 2 開燈問題 有n盞燈,編號為1 n。第1個人把所有燈開啟,第2個人按下所有編號為2的倍數的開關 這些燈將被關掉 第3個人按下所有編號為3的倍數的開關 其中關掉的燈將被開啟,開著的燈將被關閉 依此類推。一共有k個人,問最後有哪些燈開著?輸入n和k,輸出開著的燈的編號。k n 1000。樣例輸...