蛇形填數
問題描述:
在n*n方陳裡填入1,2,...,n*n,要求填成蛇形。例如n=4時方陳為:
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4
輸入直接輸入方陳的維數,即n的值。(n<=100)
輸出輸出結果是蛇形方陳。
問題分析:
我們定義乙個二維陣列,開始x=0,y=n-1,即第一行,第n-1列,移動軌跡是:下,下,下,左,左,左,右,右,下,下,左,上。不能填,是走出界,或者開始走過的格仔。
**如下:
#include using namespace std;
#include#define n 105
int a[n][n] ; //定義陣列
int main( )
{ int n,i,j,x,y,tol;
while(cin>>n)
{ memset(a,0,sizeof(a)); //清零
x=0;
y=n-1;
tol=a[x][y]=1;
while(tol=0&&!a[x][y-1])a[x][--y]=++tol; //沒越界 ,沒填過就填寫
while(x-1>=0&&!a[x-1][y])a[--x][y]=++tol; //沒越界 ,沒填過就填寫
while(y+1
NYoj 蛇形填數
描述 在n n方陳裡填入1,2,n n,要求填成蛇形。例如n 4時方陳為 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 輸入 直接輸入方陳的維數,即n的值。n 100 輸出輸出結果是蛇形方陳。樣例輸入 3 樣例輸出 7 8 1 6 9 2 5 4 3 include ...
acm 蛇形填數
時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 在n n方陳裡填入1,2,n n,要求填成蛇形。例如n 4時方陳為 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 輸入直接輸入方陳的維數,即n的值。n 100 輸出輸出結果是蛇形方陳。樣例輸入 3...
ACM 蛇形填數
先從陣列的最右上端開始填數,需要填的次數為 n 2 1 次。若n為3,則需要 3 2 1 5 次 填充的方向為下 左 上 右。填充的次數 首次為n次,後面的兩輪為n 1次,再後面的兩輪為n 2次.include using namespace std define rank 100 r 當前行 c ...