java实现数字螺旋矩阵
2016-07-09 14:07
519 查看
题目描述:
输入一个100以内的数子num,让这num的平方个数字以螺旋矩阵的方式显示在屏幕上。
例如:输入5,则这25个数恰好可以组成一个正方体,将它以如下方式输出到屏幕上。
代码实现如下:
测试结果:
输入10
输入15
输入一个100以内的数子num,让这num的平方个数字以螺旋矩阵的方式显示在屏幕上。
例如:输入5,则这25个数恰好可以组成一个正方体,将它以如下方式输出到屏幕上。
代码实现如下:
<span style="font-size:18px;">public class printcircle { public static void main(String[] args) { int n=3; int sum=n*n; int wei=calwei(sum); int A[][]=new int ; A[0][0]=1; //算左上至右下的对角线的值 for(int i=0;i<n/2;i++){ A[i+1][i+1]=A[i][i]+4*(n-2*i-1); } //计算每行上面横向的值 for(int i=0;i<n;i++){ for(int j=i+1;j<n-i;j++){ A[i][j]=A[i][j-1]+1; } } //计算每列右边竖向的值 for(int i=n-1;i>=0;i--){ for(int j=n-i-1;j<i;j++){ A[j+1][i]=A[j][i]+1; } } //计算每行下面横向的值 for(int i=n-1;i>n/2;i--){ for(int j=i;j>n-i-1;j--){ A[i][j-1]=A[i][j]+1; } } //计算每列左边竖向的值 for(int i=0;i<n/2;i++){ for(int j=n-1-i;j>i+1;j--){ A[j-1][i]=A[j][i]+1; } } //处理输入的值为偶数的情况 if(n%2==0){ A[n/2][n/2-1]=sum; } for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ int temp=calwei(A[i][j]); for(int k=0;k<wei-temp;k++){ System.out.print(" "); } System.out.print(A[i][j]+" "); } for(int s=0;s<wei-1;s++){ System.out.println(); } } } //为了将矩阵补齐,看起来好看一些 public static int calwei(int num){ int wei=1; if(num/10<1) return 1; if(num/100<1) return 2; if(num/1000<1) return 3; if(num/10000<1) return 4; if(num/100000<1) return 5; if(num/10000000<1) return 6; if(num/100000000<1) return 7; else return 0; } }</span>
测试结果:
输入10
输入15
相关文章推荐
- Jfinal 集成spring 、cxf 做webService服务
- 新闻案例
- CXF WebService整合Spring
- 关于java高并发的一些感悟和经验已经我自己找的资料
- PL/SQL实现JAVA中的split()方法的小例子
- 消息中间件activemq-5.13.0整合spring
- Spring 定时器配置 基于配置文件 (使用 Spring3.2 、 quartz-1.6.5)
- java基础知识回顾---单例模式的三种实现
- ubuntu安装Eclipse无图标(手动创建软件图标)
- Java----多线程知识点归纳(概念)
- 二叉树java笔试操作总结
- java链表编程题总结
- springmvc 返回json数据给前台jsp页面展示
- 初学者对于I/O流的小节-下
- Java基础学习总结(30)——Java 内存溢出问题总结
- Java基础学习总结(30)——Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结
- java反射机制
- java基础知识回顾---List,set,Map 的用法和区别
- springmvc checkbox动态从后台获得
- Java中的equals和hashCode方法详解