import java.util.Scanner;

public class learn {
  public static void main(String[] args){

    System.out.println("请输入你需要打印多少阶的回形数:");
    Scanner scan = new Scanner(System.in);
    int num = scan.nextInt();    // 接收num,则打印num阶的回形数
    scan.close();
    int[][] hui = new int[num][num];
    for(int i = 0,j = 0,flag = 0,theNum = 1; theNum<=(num*num);) {    //    i可视为二维数组的第i+1排,j可视为二维数组的j+1列;flag表示回形数进行的第flag+1圈;theNum为赋的值。
      if(j<num-flag) {        //回形数向右走时
        hui[i][j] = theNum;
        j++;
        theNum++;
      }
      else if(i+1<num-flag) {    //回形数向下走时
        hui[i+1][j-1] = theNum;
        theNum++;
        i++;
      }
      else {
        for(int m = num-flag-1,n = num -flag-1;;) {
          if(n>flag) {        //回形数向左走时
            n--;
            hui[m][n] = theNum;
            theNum++;
          }
          else if(m>flag+1) {        //回形数向右走时
            m--;
            hui[m][n] = theNum;
            theNum++;
          }
          else {
            i = flag+1;
            j = flag+1;
            flag++;
            break;
          }
        }
      }
    }
    for(int a = 0;a<num;a++) {
      for(int b = 0;b<num;b++) {
        System.out.printf("%d ",hui[a][b]);
      }
    System.out.println("\n");
    }
  }
}

最新文章

  1. VS2012下X64平台嵌入汇编程序
  2. LeetCode - Convert Sorted Array to Binary Search Tree
  3. SSH客户端(如PuTTY)ssh远程登录Linux非常慢的解决方法
  4. flash文件制作笔记
  5. Https要点
  6. WebUI框架
  7. LeetCode题解——Reverse Integer
  8. POJ 2253 Frogger floyd算法
  9. PHP多维数组元素操作类
  10. java - day006 - 构造方法
  11. &lt;算法图解&gt;读书笔记:第4章 快速排序
  12. 如何设计一个restful风格的API
  13. Visual Studio Code 支持TensorFlow配置支持
  14. 2017-12-15python全栈9期第二天第七节之布尔值转数字
  15. webstorm的快捷键总结
  16. Android分享内容和接收分享内容小小实现
  17. Centos6.8 smokeping安装
  18. 软件测试--w模型
  19. div 内table 居中实现代码
  20. 容器(Container)Frames和Panels

热门文章

  1. sql server join ,inner join ,left join ,right join 的使用
  2. NetworkX系列教程(10)-算法之四:拓扑排序与最大流问题
  3. Gluon学习03-基础数据类型Ndarray
  4. python对象调用父类的方法
  5. 经常用到(创建OS)的命令
  6. 使用java时报的一些错误
  7. Webpack 核心模块 tapable 解析(转)
  8. 位于0/nut文件里的'Calculated'边界条件是什么意思?【翻译】
  9. Java 多线程编程(锁优化)
  10. Spring家族主流成员介绍