1157: 零起点学算法64——回型矩阵
Time Limit: 1 Sec Memory Limit: 64 MB 64bit IO Format: %lldSubmitted: 2440 Accepted: 925
[Submit][Status][Web Board]
Description
输出n*m的回型矩阵
Input
多组测试数据
每组输入2个整数 n和m(不大于20)
Output
输出n*m的回型矩阵,要求左上角元素是1,(每个元素占2个位置,靠右)
Sample Input
4 3
Sample Output
1 2 3
10 11 4
9 12 5
8 7 6
Source
1 #include<stdio.h> 2 #include<string.h> 3 int main(){ 4 int n,m,a[20][20]; 5 while(scanf("%d%d",&n,&m)!=EOF){ 6 7 memset(a,0,sizeof(a)); 8 int tot,i,j; 9 tot=a[i=0][j=0]=1; 10 while(tot<n*m){ 11 while(j+1<m&&!a[i][j+1]) 12 a[i][++j]=++tot; 13 while(i+1<n&&!a[i+1][j]) 14 a[++i][j]=++tot; 15 while(j-1>=0&&!a[i][j-1]) 16 a[i][--j]=++tot; 17 while(i-1>=0&&!a[i-1][j]) 18 a[--i][j]=++tot; 19 } 20 21 for(int i=0;i<n;i++){ 22 for(int j=0;j<m-1;j++){ 23 printf("%2d ",a[i][j]); 24 } 25 printf("%2d\n",a[i][m-1]); 26 } 27 } 28 29 return 0; 30 }
//依旧是思想很重要!!