0
已解决
张恩泽
高级天翼
高级天翼
1805 蛇形填数经验值:0
题目描述 Description
在 n * n 方阵里填入 1 , 2 , 3 , … , n * n,要求填成蛇形。例如 n=4 时方阵为:
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4
输入描述 Input Description
整数 n (1 <= n <= 10)
输出描述 Output Description
输出对应的蛇形方阵,所有数字占三个位宽,左对齐,数字和数字之间一个空格间隔
样例输入 Sample Input
4
样例输出 Sample Output
10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4
数据范围及提示 Data Size & Hint
注意输出的要求:所有数字占三个位宽,左对齐,数字和数字之间一个空格间隔
这个我应该是会的,但是不理解a[ht][i]和a[i][ht]有什么区别(i在前面或变量在前面),跟我讲一下有什么区别应该怎么写就可以了,不需要核心代码
张恩泽在2020-05-29 17:42:48追加了内容
//#include<bits/stdc++.h>
#include<iostream>
using namespace std;
int a[5000][5000];
int main()
{
int n;
cin>>n;
int ht=1,hw=n,lt=1,lw=n,t=1;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cout<<a[i][j];
}
}
while(n*n)
{
for(int i=ht;i<=hw;i++)
{
a[i][lw]=t++;
}
lw--;
for(int i=lw;i>=lt;i--)
{
a[i][hw]=t++;
}
hw--;
for(int i=hw;i>=ht;i--)
{
a[lt][i]=t++;
}
lt++;
for(int i=lt;i<=lw;i++)
{
a[ht][i]=t++;
}
ht++;
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cout<<a[i][j]<<' ';
}
cout<<endl;
}
return 0;
}
我刚刚写了一下,看看有没有错