题目
蛇形矩阵
代码:
#include<iostream>
using namespace std;
int a[103][103];
int n,m;
void fu(int i,int j,int v){
a[i][j]=v;
if(v>=n*m) return;
if(a[i][j+1]==0&&a[i-1][j]!=0) fu(i,j+1,v+1);
else if(a[i+1][j]==0&&a[i][j+1]!=0) fu(i+1,j,v+1);
else if(a[i][j-1]==0&&a[i+1][j]!=0) fu(i,j-1,v+1);
else if(a[i-1][j]==0&&a[i][j-1]!=0) fu(i-1,j,v+1);
}
int main(){
cin>>n>>m;
for(int i=0;i<=m+1;i++)
for(int j=0;j<=n+1;j++){
a[0][j]=-1;
a[m+1][j]=-1;
a[i][0]=-1;
a[i][n+1]=-1;
}
fu(1,1,1);
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}