您的位置:首页 > 编程语言 > C语言/C++

java编译回旋矩阵,C/C++通用算法代码

2018-03-30 11:52 399 查看
矩阵分析:把回旋矩阵看作多个空心的矩阵,如图:
注:五阶矩阵示意:



然后找到每个空心矩阵和它上下左右的for循环关系即可,如图:
注:六阶矩阵示意:



其中重要的一点是:将矩阵的上下和左右对称分析,这样确保自己不会再分析的过程中,头晕眼花,相关代码如下:package proj18.回旋矩阵;
import javax.swing.JOptionPane;
public class main {
public static void main(String[] args) {
String str=JOptionPane.showInputDialog("你想要几阶回旋矩阵:");
int n=Integer.parseInt(str);
int[][] a= new int [100][100];
int i,j,num=0;
for(int m=0;m<n/2;m++) {//n阶矩阵,意味着从外至内一共有n/2向下取整个矩阵;
for(j=m;j<n-m;j++) {//上
a[m][j]=num++;
}
for(i=m+1;i<n-m-1;i++) {//右
a[i][n-m-1]=num++;
}
for(j=n-m-1;j>=m;j--) {//下
a[n-m-1][j]=num++;
}
for(i=n-m-2;i>=m+1;i--) {//左
a[i][m]=num++;
}
if(n%2==1) {//当阶数%2=1时,最中间的数值;
a[n/2][n/2]=n*n-1;
}
}
for(i=0;i<n;i++) {//输出矩阵
for(j=0;j<n;j++)
{
System.out.print(a[i][j]+" ");
}
System.out.println();
}
}

}
其中此段代码通用c/c++/java:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java c/c