話不多說,先放原題。
怎麼說呢,蛇形填數這個填充矩陣的時候方法可能不是很好想,還是很抽象的,但是這個方法絕對非常好理解(邊界模擬法)。
首先,咱們先確定矩陣的四個邊界,在賦值完最外層邊界後,再往裡賦值裡面的乙個子矩陣,不斷迴圈,直至填充完整個矩陣。
ac**(建議先「食用」截圖自己打一遍,帶注釋的哦):
文字格式(一定要自己寫一遍哈):
#include
>
using namespace std;
const int n=110;
int q[n][n],n,m;
int main()//賦值過程中符合矩陣填充的方式
{ cin>>n>>m;
int i,j,s=1,x=n,z=1,y=m,k=1;//上下左右四個邊界,初始值
while(s<=x&&z<=y)
{ for(i=z;i<=y;i++)//上邊界賦值
q[s][i]=k++;
for(i=s+1;i<=x;i++)//右邊界賦值
q[i][y]=k++;
for(i=y-1;i>=z&&ss&&z「飯」後總結:
也不知道大家「食用」的怎麼樣,但是這個題確實是乙個思路的問題,掌握了解題思路,**實現就很簡單了,也希望大家平常能夠多鍛鍊下思維能力,大家一起加油。
fighting!
簡單遞迴之蛇形填數
時間限制 1000 ms 記憶體限制 65535 kb 問題描述 peter喜歡玩字母遊戲,於是他編寫了乙個有趣的遊戲。遊戲規則是在乙個 n 1 n的 裡填寫字母,規則 對於每個輸入的n,由 n 1 n的字母區域的左上角開始,從字母a開始逆時針填充乙個字母區域,乘積若超過26繼續由新一組的a b c...
經典演算法 蛇形填數,最簡單的方法了
你能發現這裡面的數為1到 n n 所以寫個迴圈即可 while count填過的地方不為0了,所以不再填一次 include include using namespace std int a 100 100 void main for x 0 x 輸出 你能發現這裡面的數為1到 n n 所以寫個迴...
posix timer引數理解與簡單使用示例
clock id說明定時器是基於哪個時鐘的,clock id取值為以下 clock realtime systemwide realtime clock.clock monotonic represents monotonic time.cannot be set.clock process cpu...