给一个正整数n,输出一个n*n的螺旋矩阵
螺旋矩阵可以是逆时针也可以是顺时针,也可以是从里到外,也可以是从外到里
顺时针,从外到里:
#include <iostream>
using namespace std;
const int _N = 100;
int matrix[_N][_N];
//思想:递归每一圈
/*
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
*/
void setMatrix(int x, int y, int start, int n)
{
int i;
if(n <= 0)
return;
if(n == 1)
{
matrix[x][y] = start;
return;
}
for(i = x; i < x + n - 1; i++) //左边
matrix[i][y] = start++;
for(i = y; i < y + n - 1; i++) //下边
matrix[n + x - 1][i] = start++;
for(i = x + n - 1; i > x; i--) //右边
matrix[i][n + y - 1] = start++;
for(i = y + n - 1; i > y; i--) //上边
matrix[x][i] = start++;
setMatrix(x + 1, y + 1, start, n - 2);
}
int main()
{
int n, i, j;
while(cin>>n)
{
setMatrix(0, 0, 1, n);
for(i = 0; i < n; i++)
{
for(j = 0; j < n; j++)
{
printf("%4d", matrix[i][j]);
}
cout<<endl;
}
}
return 0;
}
- 大小: 9.7 KB
分享到:
相关推荐
C++螺旋矩阵C++螺旋矩阵C++螺旋矩阵C++螺旋矩阵C++螺旋矩阵C++螺旋矩阵C++螺旋矩阵C++螺旋矩阵
螺旋矩阵时间限制: 1000ms 内存限制: 64000kB 描述 螺旋数组: 打印方阵为5的螺旋矩阵为 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 输入 5 输出 矩阵 样例输入 5 样例...
用C语言完成螺旋矩阵,输入n,得到n行n列的四种螺旋矩阵 1. 给定N的值,从矩阵的左上角输出顺时针螺旋矩阵 例如N=4时,输出: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 2.给定N的值,从矩阵的右上角输出逆时针螺旋...
用C语言实现了螺旋矩阵,其中n。如输入4,则会输出4*4的螺旋矩阵
1.题目: n阶螺旋矩阵问题 题目描述: 创建n阶螺旋矩阵并输出。 2、阿牛的EOF牛肉串 题目描述: 今年的ACM集训队有一个叫做EOF的队伍,由阿牛、XC以及COY组 成。在共同的集训生活中,大家建立了深厚的友谊,阿牛准备做...
数据结构螺旋矩阵VC6,能够进行正时针外循环螺旋矩阵。
提供了两种螺旋矩阵的输出方式,对于研究螺旋矩阵的网友可以作参考之用 刚学VB.NET做的
螺旋矩阵完整,用c语言实现,正,逆螺旋矩阵!
螺旋矩阵matlab源程序,有些人用得着吧
刚刚学习了C语言下面是用C语言实现的螺旋矩阵.
用C语言编写的螺旋矩阵程序 void down(int i,int j,int a[N][N]); void right(int i,int j,int a[N][N]); void up(int i,int j,int a[N][N]); void left(int i,int j,int a[N][N]); 具体内容详见文件源代码
实现由外向内螺旋矩阵的操作 矩阵大小为M*N 实现方法为递归调用 有完整注释,看起来比较轻松
用c语言实现螺旋矩阵,如n=3时为 1 2 3 8 9 4 7 6 5
c++实现在螺旋矩阵,有螺旋动画 是个win32程序哦
C语言程序设计中的螺旋矩阵问题,我的名字没改呢, 记得改名哦
C++实现螺旋矩阵,螺旋数字排列,它的数字由第一行开始到右边不断变大,向下变大,向左变大,向上变大,如此循环
用JAVA实现螺旋矩阵的编写,这是一种比较容易让人接受的方法
螺旋矩阵 java 初学者可看懂 。。。。。。。。
对于奇数阶和偶数阶的外螺旋矩阵,分别找到他们的螺旋起点,即1的位置,依次向左、下、右、上执行由阶数决定的循环,对该位赋值为前一数值加1。
输出螺旋矩阵的VB程序,共学习VB程序设计的复杂算法编程