旋转矩阵
2015-09-21 16:57
260 查看
//输入一个整数n,1~~n*n的数顺时针旋转得到一个矩阵
package helloword;
import java.util.Scanner;
public class spainmatrix {
public static void main(String[] args) {
int[][] a=new int[20][20];
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int count=1;
for(int k=0;k<n/2;k++) //k+1为旋转圈数
{
for(int j=k;j<n-k-1;j++)
{
a[k][j]=count; //用count来记录数字,相当于一个数字计数器。自加
count++;
}
for(int i=k;i<n-k-1;i++)
{
//a[i+k][n-1-k]=count;
a[i][n-k-1]=count;
count++;
}
for(int i=n-1-k;i>k;i--)
{
a[n-1-k][i]=count;
count++;
}
for(int i=n-1-k;i>k;i--)
{
a[i][k]=count;
count++;
}
}
if(n%2!=0)
a[n/2][n/2]=n*n;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++)
System.out.printf(a[i][j]+" ");
System.out.println();
input.close();
}
}
}
//输入一个整数n,1~~n*n的数顺时针旋转得到一个矩阵
package helloword;
import java.util.Scanner;
public class spainmatrix {
public static void main(String[] args) {
int[][] a=new int[20][20];
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int count=1;
for(int k=0;k<n/2;k++) //k+1为旋转圈数
{
for(int j=k;j<n-k-1;j++)
{
a[k][j]=count; //用count来记录数字,相当于一个数字计数器。自加
count++;
}
for(int i=k;i<n-k-1;i++)
{
//a[i+k][n-1-k]=count;
a[i][n-k-1]=count;
count++;
}
for(int i=n-1-k;i>k;i--)
{
a[n-1-k][i]=count;
count++;
}
for(int i=n-1-k;i>k;i--)
{
a[i][k]=count;
count++;
}
}
if(n%2!=0)
a[n/2][n/2]=n*n;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++)
System.out.printf(a[i][j]+" ");
System.out.println();
input.close();
}
}
}
相关文章推荐
- 第三周实践项目1--顺序表的基本运算(2)线性表长度,查找元素
- 用elasticsearch-river-jdbc同步数据到elasticsearch
- 2015-9-21 【项目 - 顺序表应用】
- 第三周 项目1 顺序表的基本运算
- 字符串 intValue、floatValue、doubleValue、longLongValue 方法可以正确转换的位数或者大小
- Func和Action系统委托
- 判断一个字符串能否通过添加一个字符变成回文串
- 用elasticsearch-river-jdbc同步数据到elasticsearch
- malloc内存分配详解
- 冒泡排序算法
- 在ios开发中,使用钥匙来保存用户密码和账号
- 单例模式
- 推荐学习前端知识不错的网站
- 第4周 项目2 建设“单链表”的算法库
- 比较和排序(IComparable和IComparer以及它们的泛型实现)
- 数据加密介绍<2>
- 三维气象要素场--WebGL篇
- webpack+react问题汇总
- mysql常用引擎
- XML创建、读取、追加的例子