2901: 练63.2 斜行方阵
内存限制:64 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:1
解决:1
题目描述
输入整数$N$,输出相应方阵。
输入
输入一个整数 $n$ ,$1≤n≤18$。
输出
一个方阵,每个数字的场宽为$4$。
样例输入 复制
5
样例输出 复制
11 7 4 2 1
16 12 8 5 3
20 17 13 9 6
23 21 18 14 10
25 24 22 19 15
提示
#include<iostream>
using namespace std;
int a[20][20],n,x,y;
bool check(int x,int y){
return x>=1 && x<=n && y>=1 && y<=n;
}
int main(){
cin>>n;
int c=0;
for(int i=n;i>=1;i--){
x=1;
y=i;
while(check(x,y)){
c++;
a[x][y]=c;
x++;
y++;
}
}
for(int i=2;i<=n;i++){
x=i;
y=1;
while(check(x,y)){
c++;
a[x][y]=c;
x++;
y++;
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)
printf("%4d",a[i][j]);
printf("\n");
}
return 0;
}