这里是《剑指offer》PDF下载链接,欢迎一起进步的同学下载学习!
剑指offer高清完整版PDF下载
在n*n的方阵里填入1,2,…, n*n, 要求填成蛇形。例n=4时方阵为:
~ | ~ | ~ | ~ |
---|---|---|---|
10 | 11 | 12 | 1 |
9 | 16 | 13 | 2 |
8 | 15 | 14 | 3 |
7 | 6 | 5 | 4 |
#include <stdio.h>
#include <string.h>
#define maxn 20
int a [maxn][maxn];
int main(){
int n = 0; i = 0; j = 0;
memset(a, 0, sizeof(a)); //初始化为0
scanf("%d", &n);
int count = 1; //计数
a[i=0][j=n-1]; //初始值
while(count < n*n){
while(i+1 < n && a[i+1][j]){ //right
a[++i][j] = ++count;
}
while(j-1 >= 0 && a[i][j-1]){ //down
a[i][--j] = ++count;
}
while(i-1 >= 0 && a[i-1][j]){ //left
a[--i][j] = ++count;
}
while(j+1 < n && a[i][j+1]){ //up
a[i][++j] = ++count;
}
}
for(i = 0; i < n; i++){
for(j = 0; j < n; j++){
printf("%3d", a[i][j]);
}
printf("\n");
}
return 0;
}