螺旋矩阵
2017-03-24 20:44
204 查看
要求:输出螺旋矩阵(如图所示):
1 12 11 10
2 13 16 9
3 14 15 8
4 5 6 7
解决方案:
一圈一圈的解决,因为每一圈的规律都是一样的,所以用到递归。
c++代码:
Java代码:
(Java初学者,自己尝试了一下,感觉代码整体结构不太好)
问题解决时主要借助了递归算法,但是在写最外圈的实现代码是过于繁琐了。
1 12 11 10
2 13 16 9
3 14 15 8
4 5 6 7
解决方案:
一圈一圈的解决,因为每一圈的规律都是一样的,所以用到递归。
c++代码:
#include <iostream> #include<iomanip> #define maxsize 20 using namespace std; int dcount=1; void fun(int a[maxsize][maxsize],int x,int y) { int i; if(x>y) return; else //一次循环 { for(i=x;i<=y;i++) { a[i][x]=dcount; dcount++; } for(i=x+1;i<=y;i++) { a[y][i]=dcount; dcount++; } for(i=y-1;i>=x;i--) { a[i][y]=dcount; dcount++; } for(i=y-1;i>=x+1;i--) { a[x][i]=dcount; dcount++; } fun(a,x+1,y-1); //函数调用 } } int main() { int a[maxsize][maxsize],i,j,row; cout<<"请输入矩阵维数:"; cin>>row; fun(a,1,row); for(i=1;i<=row;i++) { for(j=1;j<=row;j++) cout<<setw(6)<<a[i][j]; cout<<endl; } return 0; }
Java代码:
(Java初学者,自己尝试了一下,感觉代码整体结构不太好)
import javax.swing.JOptionPane; public class Exc_1 { public static void main(String[] args) { // TODO Auto-generated method stub int n,num=1,i,j,a[][]=new int[20][20]; String s=JOptionPane.showInputDialog("Please cin the n:"); n=Integer.parseInt(s); fun(a,1,n,num); for(i=1;i<=n;i++) { for(j=1;j<=n;j++) System.out.print(a[i][j]+" "); System.out.print("\n"); } } static void fun(int a[][],int s,int e,int dcount) { if(s>e) return; else { for(int i=s;i<=e;i++) { a[i][s]=dcount; dcount++; } for(int i=s+1;i<=e;i++) { a[e][i]=dcount; dcount++; } for(int i=e-1;i>=s;i--) { a[i][e]=dcount; dcount++; } 9ff4 for(int i=e-1;i>=s+1;i--) { a[s][i]=dcount; dcount++; } fun(a,s+1,e-1,dcount); } } }
问题解决时主要借助了递归算法,但是在写最外圈的实现代码是过于繁琐了。
相关文章推荐
- 从键盘输入一个整数(1~20) 则以该数字为矩阵的大小,把1,2,3…n*n 的数字按照顺时针螺旋的形式填入其中。
- PAT乙级 1050. 螺旋矩阵(25)
- pat 乙级 1050. 螺旋矩阵(25)
- 矩阵顺时针螺旋赋值
- 面试题之螺旋矩阵
- 飘逸的python - 打印螺旋矩阵
- 1050. 螺旋矩阵(25)
- 螺旋输出N*N矩阵
- 螺旋矩阵 -- 腾讯16春招笔试题目
- Java基础知识_day06_(螺旋矩阵,控制台打印图案)
- 螺旋矩阵
- [数组]顺时针打印螺旋矩阵
- PAT乙级 1050. 螺旋矩阵(25)
- 螺旋输出二维矩阵
- 螺旋矩阵求指定位置的数字
- java 实现螺旋矩阵
- PAT乙级 1050. 螺旋矩阵(25)
- 脑洞脑洞 螺旋矩阵
- 从键盘输入一个整数(1~20) 则以该数字为矩阵的大小,把1,2,3…n*n 的数字按照顺时针螺旋的形式填入其中。
- 螺旋矩阵赋值或输出