0螺旋矩阵 - 蓝桥云课 (lanqiao.cn)
题目描述
对于一个n行m列的表格,我们可以使用螺旋的方式给表格依次填上正整数,我们称填好的表格为一个螺旋矩阵。
例如,一个4行5列的螺旋矩阵如下:
1 2 3 4 5
14 15 16 17 6
13 20 19 18 7
12 11 10 9 8
输入描述
输入格式:
输入的第一行包含两个整数n,m,分别表示螺旋矩阵的行数和列数。
第二行包含两个整数r,c,表示要求的行号和列号。
其中,2≤n,m≤1000,1≤r≤n,1≤c≤m。
输出描述
输出一个整数,表示螺旋矩阵中第r行第c列的元素的值。
输入输出样例
示例
输入
4 5
2 2输出
15
#include <iostream>
using namespace std;
const int N=1e3+10;
int q[N][N];
int n,m;
int r,c;
int main()
{
// 请在此输入您的代码
cin >> n >> m;
int col=1,row=1,i=1,n1=n,m1=m;
while(i<=n*m){
for(;col<m1;col++){//从左往右
q[row][col]=i++;
}
m1--;
for(;row<n1;row++){//从上往下
q[row][col]=i++;
}
n1--;
for(;col>m-m1;col--){//从右往左
q[row][col]=i++;
}
for(;row>n-n1;row--){//从下往上
q[row][col]=i++;
}
col++;row++;
}
cin >> r >> c;
cout << q[r][c];
return 0;
}