C 蛇形填數

2021-06-08 10:48:21 字數 807 閱讀 5123

蛇形填數

問題描述:

在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 ...