首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用特定输出打印网格

使用特定输出打印网格
EN

Stack Overflow用户
提问于 2017-02-24 01:36:03
回答 3查看 1.5K关注 0票数 0

我需要输出一个网格数组,该数组的输出为:

代码语言:javascript
运行
复制
1 5 9 13 17 21
2 6 10 14 18 22
3 7 11 15 19 23
4 8 12 16 20 24

这是我目前拥有的代码:

代码语言:javascript
运行
复制
    public static void printGrid(){
    int x = 0, y = 0;
    int[][] grid = new int[4][6];
    for(int i=1; i<=(4*6); i++){
        x++;
        if(i%4 == 0){
            y++;
            x = 0;
        }
    }

}

任何和所有的帮助都非常感谢。

EN

回答 3

Stack Overflow用户

发布于 2017-02-24 02:01:00

最简单的方法可能是使用二维数组。这是一个内部包含数组的数组。这些都是java原生的,可以这样声明:

代码语言:javascript
运行
复制
int[][] nameOfArray = new int[numOfArrays][lengthOfEachArray]

使用它们,您可以填充这个数组,使其包含1-4,第二个包含5-8,依此类推。然后,可以在同一行上打印出每个数组的第一个值,然后转到下一行,打印出该行上每个数组的第二个值,依此类推。如果你这样做了,你应该能够打印出你想要的东西。如果您需要有关2D数组语法的帮助,请参阅here以获得解释它们如何工作的好答案。祝你实现顺利!

票数 0
EN

Stack Overflow用户

发布于 2017-02-24 02:25:46

你可以这样做:

代码语言:javascript
运行
复制
int x = 0, y = 0, sizeX = 5, sizeY = 5;
int[][] name = new int[sizeX][sizeY]
for(int i = 1; i <= (sizeX*sizeY); i++) {        
    x++;
    if(i%sizeX == 0) {
        y++;
        x = 0;
    }
    name[x][y] = numberAtThisPoint;
}

这也是一种相当有效的方法,因为它只使用一个for循环,但是您必须使用模数。

有了模数,你就可以把你想要的列"sizeX“放在网格的下一行,并检查循环所在的当前列"i”是否等于0。

您可能需要对其进行一些更改,以生成您正在寻找的输出。

票数 0
EN

Stack Overflow用户

发布于 2017-02-24 23:05:28

如果你不想使用模数,这是一种方法。它有一个嵌套的for循环,所以在中你会有~O(n^2)的时间复杂度。(不包括打印数组的方法,但您可以很容易地将打印调用放入getGrid方法)

代码语言:javascript
运行
复制
public static int[][] getGrid(int height, int length) {
    int[][] grid = new int[height][length];
    int k;
    for (int i = 0; i < height; i++) {
        k = i;
        for (int j = 0; j < length; j++) {
            grid[i][j] = k+1;
            k += height;
        }
    }
    return grid;
}

public static void printGrid(int[][] grid) {
    for(int i = 0; i < grid.length; i++) {
        for(int j = 0; j < grid[i].length; j++) {
            System.out.print(grid[i][j] + " ");
        }
        System.out.println();
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42422602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档