P5731 深基5.习6蛇形方阵
Posted Kunkun只喝怡宝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P5731 深基5.习6蛇形方阵相关的知识,希望对你有一定的参考价值。
题目描述
给出一个不大于 9 的正整数 n,输出 n×n 的蛇形方阵。
从左上角填上 1 开始,顺时针方向依次填入数字,如同样例所示。注意每个数字有都会占用 3 个字符,前面使用空格补齐。
代码
按照顺时针方向一圈一圈的从外向内给方阵赋值,每一圈都是相同的四个步骤,向左——向下——向右——向上。
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m=1,i=1,j=1,a[10][10];
memset(a,0,sizeof(a));
cin>>n;
while(m<=n*n){
while(i<=n&&a[j][i]==0){
a[j][i]=m++;
if(i+1<=n&&a[j][i+1]==0)
i++;
else{
j++;
break;
}
}
while(j<=n&&a[j][i]==0){
a[j][i]=m++;
if(j+1<=n&&a[j+1][i]==0)
j++;
else{
i--;
break;
}
}
while(i>0&&a[j][i]==0){
a[j][i]=m++;
if(i-1>0&&a[j][i-1]==0)
i--;
else{
j--;
break;
}
}
while(j>0&&a[j][i]==0){
a[j][i]=m++;
if(j>0&&a[j-1][i]==0)
j--;
else{
i++;
break;
}
}
}
for(j=1;j<=n;j++){
for(i=1;i<=n;i++)
printf("%3d",a[j][i]);
cout<<endl;
}
return 0;
}
以上是关于P5731 深基5.习6蛇形方阵的主要内容,如果未能解决你的问题,请参考以下文章