一个旋转矩阵问题同学给了我一个题目就是输入一个正整数n 比如n=4输出一个n*n的矩阵如下 1 2 3 412 13 14 511 16 15 610 9 8 7这个应该怎么写呢……

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/03 22:17:59
一个旋转矩阵问题同学给了我一个题目就是输入一个正整数n 比如n=4输出一个n*n的矩阵如下 1 2 3 412 13 14 511 16 15 610 9 8 7这个应该怎么写呢……

一个旋转矩阵问题同学给了我一个题目就是输入一个正整数n 比如n=4输出一个n*n的矩阵如下 1 2 3 412 13 14 511 16 15 610 9 8 7这个应该怎么写呢……
一个旋转矩阵问题
同学给了我一个题目就是输入一个正整数n 比如n=4
输出一个n*n的矩阵如下
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
这个应该怎么写呢……

一个旋转矩阵问题同学给了我一个题目就是输入一个正整数n 比如n=4输出一个n*n的矩阵如下 1 2 3 412 13 14 511 16 15 610 9 8 7这个应该怎么写呢……
递归写法,理论上有输入上限,不过一般也不会有那么大的输入
没有处理格式,没有处理输入,只写了算法...
class Program
{
private static void Fill(int[,] matrix,Direction direction,int start,
int rows,int cols,int rowOffset,int colOffset)
{
if (rows == 0 || cols == 0) return;
switch (direction)
{
case Direction.Left:
for (int n = cols; n > 0; )
matrix[rowOffset + rows - 1,colOffset + --n] = ++start;
Fill(matrix,Direction.Up,start,rows - 1,cols,rowOffset,colOffset);
break;
case Direction.Right:
for (int n = 0; n < cols; ++n)
matrix[rowOffset,colOffset + n] = ++start;
Fill(matrix,Direction.Down,start,rows - 1,cols,rowOffset + 1,colOffset);
break;
case Direction.Up:
for (int n = rows; n > 0; )
matrix[rowOffset + --n,colOffset] = ++start;
Fill(matrix,Direction.Right,start,rows,cols - 1,rowOffset,colOffset + 1);
break;
case Direction.Down:
for (int n = 0; n < rows; ++n)
matrix[rowOffset + n,colOffset + cols - 1] = ++start;
Fill(matrix,Direction.Left,start,rows,cols - 1,rowOffset,colOffset);
break;
}
}
enum Direction { Left,Right,Up,Down };
static void Main(string[] args)
{
int n = 4;
int[,] matrix = new int[n,n];
Fill(matrix,Direction.Right,0,4,4,0,0);
for (int i = 0; i < n; ++i)
{
for (int j = 0; j < n; ++j)
{
Console.Write(matrix[i,j] + " ");
}
Console.WriteLine();
}
Console.WriteLine();
}
}

一个旋转矩阵问题同学给了我一个题目就是输入一个正整数n 比如n=4输出一个n*n的矩阵如下 1 2 3 412 13 14 511 16 15 610 9 8 7这个应该怎么写呢…… matlab 向量旋转问题现在有一个二维向量,比如[1,0],我需要把它逆时针旋转a的角度;我知道应该用矩阵来乘,就是不知道这个矩阵是什么.如何实现向量的旋转?麻烦大家了^L^;给一段源码的加分. 您之前给我接打过一个分段函数求导数的问题,您当时给我求出了M矩阵,我在求K矩阵的时候遇到了问题上次的图片不清楚.这个k矩阵我求的时候是遇到了很多的问题啊!上次LZ给我求出了M矩阵, 我碰到一个关于电力系统分析方面 三相对称短路计算中的问题,题目给了一个图,要我们计算短路点的短路电流我可以解答出来,但是题目要求编写程序,我没有用到矩阵,因为图不复杂,所以不知 写同学情作文的题目大概就是她给我讲了题 一个同学给了我这几个字, c语言中旋转矩阵的问题把一个n*n阶的距阵的最外围一圈按顺时针旋转x下后,距阵第一行的和为多少呢?如距阵:1 2 32 3 43 4 5旋转一下后得到的是:2 1 23 3 34 5 4如题所示,矩阵旋转90°的我会了,但 矩阵旋转变换一个三阶矩阵逆时针旋转90度 变换矩阵是多少 如何在matplotlib中用旋转矩阵把一个图形旋转? 怎样随机给matlab中矩阵的一个元素赋值matlab中矩阵问题 一个同学给我写的, 线性代数矩阵的问题如果A是m*n阶矩阵,那么r(A)=n是什么意思.我当然知道那是A的秩是n.但是对于一个3*2阶的矩阵来说,R(A)=n=2那不就是代表这个矩阵的行列式为0了? 线性代数矩阵的问题如果A是m*n阶矩阵,那么r(A)=n是什么意思.额.我当然知道那是A的秩是n.但是对于一个3*2阶的矩阵来说,R(A)=n=2那不就是代表这个矩阵的行列式为0了? 用顺序主子式判断矩阵是否合同需要注意什么问题如题,我觉得用这种方法判断矩阵是否合同感觉很快,但是今天做了一个题感觉不管用了,上图题目条件中的矩阵我用顺序主子式的方法判断,分 数学式子化简我有一个分式,式子没有什么问题,就是不知道是怎么来的,请老师或者同学指教……最好也可以写一个图给我, 困扰了好久的一个问题,矩阵列变换的含义,我先说下我的理解,线性代数里面,提出矩阵是为了解线性方程组,矩阵的行变换我还能理解,例如两行交换位置,就是把两个方程式的位置换一下,i行乘 关于线性代数的一个定理线性代数有个定理,说方阵A可逆充要条件是存在有限个初等矩阵P1...Pl,使得A=p1*P2*...*Pl.我的问题就是如果我随便给个可逆矩阵,那么如何将一组符合条件的P1到Pl给求出 有一个问题一直困扰着我‘你学习语文六年了,请把你自己学习语文最有效,介绍给同学’