为了账号安全,请及时绑定邮箱和手机立即绑定

按顺序显示一个数字递增的框

按顺序显示一个数字递增的框

拉丁的传说 2021-08-04 17:36:58
代码        int rows=3, columns=3, i, j;        for(i = 1; i <= rows; i++)        {            for(j = 1; j <= columns; j++)            {                if(i == 1 || i == rows || j == 1 || j == columns)                {                    System.out.print(count);                     count++;                }                else                {                    System.out.print(" ");                 }            }            System.out.print("\n");         }   以下代码输出以下内容:输出1234 5678我想要实现的是以下内容:1238 4765基本上创建一个棋盘游戏,它必须从一个位置开始并在同一位置结束,完成一个完整的圆圈,在这种情况下是一个正方形。有任何想法吗 ??
查看完整描述

2 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

经过一些实验,这可以工作:


public static void printBox(int rows, int columns) {


    int sumOfColumns = 2 * columns + rows - 1;

    int sumOfRow = 2 * columns + 2 * rows - 2;


    for (int i = 1; i <= rows; i++) {

        for (int j = 1; j <= columns; j++) {

            if (i == 1) {

                System.out.printf(String.format("%3d", j));

            } else if (j == 1) {

                System.out.printf(String.format("%3d", sumOfRow - (i + j - 1)));

            } else if (j == columns) {

                System.out.printf(String.format("%3d", i + j - 1));

            } else if (i == rows) {

                System.out.printf(String.format("%3d", sumOfColumns - j));

            } else {

                System.out.print("   ");

            }

        }

        System.out.print("\n");

    }

    System.out.print("\n");

}

测试用例:


public static void main(String[] args) {

    printBox(3, 3);

    printBox(4, 4);

    printBox(3, 4);

}

结果:


  1  2  3

  8     4

  7  6  5


  1  2  3  4

 12        5

 11        6

 10  9  8  7


  1  2  3  4

 10        5

  9  8  7  6


查看完整回答
反对 回复 2021-08-04
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

考虑创建一个二维数组:

gameBoard[3][3];

然后用所需的值填充该板。游戏板完成后,您可以编写另一个函数来打印板。


查看完整回答
反对 回复 2021-08-04
  • 2 回答
  • 0 关注
  • 135 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信