ocrosoft Contest1316 - 信奥编程之路~~~~~第三关 问题 P: 【数组】1234方阵(phalanx)
http://acm.ocrosoft.com/problem.php?cid=1316&pid=15
题目描述
编程打印如下规律的n*n方阵。输入n,按规律输出方阵。
方阵规律如下图:使左对角线和右对角线上的元素为0,它们上方的元素为1,左方的元素为2,下方元素为3,右方元素为4,下图是一个符合条件的5阶矩阵。
0 1 1 1 0
2 0 1 0 4
2 2 0 4 4
2 0 3 0 4
0 3 3 3 0
输入
正整数n(<=100)。
输出
所需的方阵。
样例输入
5
样例输出
0 1 1 1 0
2 0 1 0 4
2 2 0 4 4
2 0 3 0 4
0 3 3 3 0
代码:
#include <bits/stdc++.h> using namespace std; int N; int maze[110][110]; int main() { scanf("%d", &N); memset(maze, 0, sizeof(maze)); for(int i = 1; i <= N; i ++) { for(int j = 1; j <= N; j ++) { if(i != j && i + j != N + 1) { if(i < j) { if(i + j < N + 1) maze[i][j] = 1; else maze[i][j] = 4; } else { if(i + j < N + 1) maze[i][j] = 2; else maze[i][j] = 3; } } } } for(int i = 1; i <= N; i ++) { for(int j = 1; j <= N; j ++) { if(j != N) printf("%d ", maze[i][j]); else printf("%d\n", maze[i][j]); } } return 0; }