回形要求,中間空格,每一行後不得有空格,要求大小自己定義。
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
#include
using
namespace std;
intmain()
}else
if(i2!=n1&&j2==n1)
//i++;
}else
if(i2==n1&&j2==n1)
//j--;
}else
if(i2==n1&&j2!=n1)
if(i==j)}}
}for
(int i=
1;i<=n;i++
)else}}
return0;
}
寫這段**的時候**病又犯了,就是沒有想清楚最佳的方法去寫,總是想著矩陣拐角轉彎時要加入if語句,行是行,可是有點傻啊。最後想到,反正是回形,每一次都有迴圈,何不直接四個迴圈就好了嗎?當收縮一圈時,迴圈範圍變小便可以了,下面是改進後的**:
#include
using
namespace std;
intmain()
for(
int i=first;i<_end;i++
)for
(int i=_end;i>first;i--
)for
(int i=_end;i>first;i--
) first++
;_end--;if
(first==_end)
}for
(int i=
0;i)else}}
return0;
}
所以,在編寫每乙個問題的時候,一定要想要方法,可以在腦海裡演算一遍,最後想出合適的演算法再寫,不然想我一樣想到什麼寫什麼很吃虧。 蛇形(回形)矩陣
如下 蛇形 回形 矩陣的實現 解題思路 整體思路 每一圈的數值都是連續的,所以我們一圈一圈的賦值 對一圈的初始化 1 設定 p,p 每一圈最左上角的座標 q,q 每一圈最右下角的座標 2 對每一圈分四部 上,右,下,左 分別初始化 為了使這四步對稱 賦值個數相同 按下圖這樣初始化 1的位置初始化 上...
C 分別實現螺旋矩陣 回形矩陣 蛇形矩陣
1 螺旋矩陣 題目描述 輸入n,試列印輸出n n的 螺旋矩陣 每個元素佔4位場寬 輸入例如n 7,矩陣如下圖 輸出 原始碼 include include using namespace std 螺旋矩陣 intmain int cnt 1 int x 0,y 0 int dx 0,dy 1 whi...
C語言 回形取數
基礎練習 回形取數 時間限制 1.0s 記憶體限制 512.0mb 問題描述 回形取數就是沿矩陣的邊取數,若當前方向上無數可取或已經取過,則左轉90度。一開始位於矩陣左上角,方向向下。輸入格式 輸入第一行是兩個不超過200的正整數m,n,表示矩陣的行和列。接下來m行每行n個整數,表示這個矩陣。輸出格...