Accepted
在n*m的方阵里填入1,2,3,...,要求添成蛇形。其中m,n<=10。例如n=3,m=4时的方阵为:
1-2-3-4
|
0-1-2 5
| |
9-8-7-6
填数方向为左下右上。且填数为从0~9循环,即是9过了又是0
Description
多组数据,两个整数n,m(0 < n,m < 11)n为排数,m为列数.
Input
填好的方阵,每两组测试数据之间有一个空行。
Output
1
|
5 4
|
Sample Input
1
2
3
4
5
6
|
0123
3454
2965
1876
0987
|
#include<stdio.h>
#include<string.h>
int main(){
int n,m;
int bol[50][50];
int ci=0;
while(~scanf("%d %d",&n,&m))
{
if(ci!=0)
{
printf("\n");
}
memset(bol,-1,sizeof(bol));
int t=0;
int i=0,j=-1;
while(t!=n*m)
{
while((j+1)<m&&bol[i][j+1]==-1)
bol[i][++j]=(t++)%10;
while((i+1)<n&&bol[i+1][j]==-1)
bol[++i][j]=(t++)%10;
while((j-1)>=0&&bol[i][j-1]==-1)
bol[i][--j]=(t++)%10;
while((i-1)>=0&&bol[i-1][j]==-1)
bol[--i][j]=(t++)%10;
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("%d",bol[i][j]);
}
printf("\n");
}
ci=1;
}
return 0;
}