题目描述
输入两个整数nn和mm,输出一个nn行mm列的矩阵,将数字11到n * mn∗m按照回字形填充至矩阵中
样例输入
输入共一行,包含两个整数nn和mm
样例输出
输出满足要求的矩阵
矩阵占nn行,每行包括mm个空格隔开的整数
样例
样例一
输入数据 1
3 3
Copy
输出数据 1
1 2 3
8 9 4
7 6 5
Copy
数据范围
1 \le n, m \le 1001≤n,m≤100
代码:
#include <iostream>using namespace std;
const int N=110;int n,m;
int q[N][N];
int main()
{int a,b;cin >> n >> m;int d=1;int x=0,y=0;int dx[] = {-1,0,1,0}, dy[] = {0,1,0,-1};//偏移量for(int i=1 ; i<=n*m ; i++){q[x][y]=i;a=x+dx[d],b=y+dy[d];//按控制的方向移动if(a<0 || b<0 || q[a][b] || a>=n || b>=m){d=(d+1)%4;//控制方向,作顺时针转动a=x+dx[d],b=y+dy[d];}x=a,y=b;}for(int i=0 ; i<n ; i++){for(int j=0 ; j<m ; j++)cout<< q[i][j] <<' ';cout<<endl;}return 0;
}