java中的棋盘图案,嵌套for循环和2x2分组

时间:2014-02-25 00:38:48

标签: java for-loop

我对这个介绍性的java作业问题感到非常难过。我们必须使用嵌套的for循环来制作由X和O组成的m×n棋盘。 M是行数,N是列数。我可以使用下面的代码制作一个通用的棋盘图案但是我在缠绕我的头部时遇到的问题是他们希望将字符分组为2x2分组。因此,对于下面发布的代码,最终结果应如下所示:

XXOO
XXOO
OOXX

我确信这并不困难,但我已经尝试了几个小时我能想到的一切,但似乎仍然无法弄明白。我变得非常沮丧,这也没有帮助:/提前感谢任何和所有的帮助!

public class Homework
{
    public static void main (String[] args)
    {
        int m = 3;
        int n = 4;
        for(int rows = 0; rows<m; rows++)
        {
            for(int cols = 0; cols<n; cols++)
            {
                if((rows+cols)%2 ==0) System.out.print("X");
                else System.out.print("O");
            }
            System.out.println();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

对于rowscols的每个值,如果它们都是0或1,则打印X如果它们都是2或3,则打印0。倒数第二个值中的位包含该信息;它是1如果它是0或1,value & 2如果它是2或3.你需要知道这两个值上的特定位。使用X提取倒数第​​二位。

如果两者相同(均为0或均为1),则打印O,如果它们不相同,则打印XX | OO | XX | OO (1) | (2) ----+---- (3) | (4) OO | XX | OO | XX

X
  • 在方案(1)中,倒数第二位都是0。
  • 在方案(2)中,行的倒数第二位为0,但是col为1。
  • 在方案(3)中,行的倒数第二位是1,但是col是0。
  • 在方案(4)中,倒数第二位都是1。

如果倒数第二位相同,则打印O,否则打印{{1}}。