嵌套循环以查找计数数字

时间:2011-08-23 02:01:55

标签: java loops for-loop nested-loops

从未想过我在这里有嵌套循环的问题Iam:我想要实现的是:给定两个数字A和B我需要找到1和A * B之间的所有计数数字,例如A = 4 B = 3我需要这个:

      1 2 3
      4 5 6
      7 8 9
      10 11 12

我写了初始部分,但我无法弄清楚如何写下每行变化的值

      for(int i=1; i<=A; i++){
                 for(int j=1; j<=B; j++){
                      System.out.println("?");}}

让A * B给我

    1 2 3
    2 4 6
    3 6 9
    4 8 12

我也尝试了其他一些组合,但没有运气,它可能看起来很直接,但它是我第一次面对这个。提前谢谢!

6 个答案:

答案 0 :(得分:4)

for(int i=0; i<A; i++){
    for(int j=0; j<B; j++){
        System.out.print(B*i + (j + 1));
    }
    System.out.println("");
}

答案 1 :(得分:3)

您可以尝试(i-1)*B + j

另一个选择是只使用1 for循环:

int limit = A * B;
for (int i = 1; i <= limit; i++) {
    System.out.print(i + " ");
    if (i % B == 0) {
        System.out.println();
    }
}

答案 2 :(得分:2)

for(int i=1;i<=A*B;i++)
{  System.out.printf("%d%c",i,(i%B!=0?' ':'\n'));
}

for(i=1;i<A*B;i+=B)
{ for(j=i;j<i+B;j++)
  { System.out.printf("%d ",j);
  }
  System.out.println();
}

答案 3 :(得分:2)

我不知道为什么它必须是嵌套循环?但是,这个可能会起作用

for(int i=0; i < A; i++){
      for(int j=i*B; j<(i+1)*B; j++){
           System.out.print(j+1);
      }
      System.out.print("\n");
}

答案 4 :(得分:1)

 for(int i=1; i<=A; i++){
                 for(int j=1; j<=B; j++){
                      System.out.print(B*(i - 1) + j);
                 }
                 System.out.println();
 }

答案 5 :(得分:1)

解决方案非常简单,只需再使用一个变量并将其从1计算到A * B.

q = 0;
for(int i=0; i<A; i++){
    for(int j=0; j<B; j++){
        q++;
        System.out.print(q + " ");
    }
    System.out.println();
}