好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

1157: 零起点学算法64——回型矩阵

1157: 零起点学算法64——回型矩阵

Time Limit: 1 Sec   Memory Limit: 64 MB   64bit IO Format: %lld
Submitted: 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  } 

//依旧是思想很重要!!

查看更多关于1157: 零起点学算法64——回型矩阵的详细内容...

  阅读:49次