Вложенные циклы для поиска счетных чисел - PullRequest
1 голос
/ 23 августа 2011

никогда не думал, что у меня проблемы с вложенными циклами, хорошо здесь 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 *Б дает мне

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

Я пробовал и другие комбинации, но, к счастью, это может показаться прямым, но это первый раз, когда я сталкиваюсь с этим.Заранее спасибо!

Ответы [ 6 ]

4 голосов
/ 23 августа 2011
for(int i=0; i<A; i++){
    for(int j=0; j<B; j++){
        System.out.print(B*i + (j + 1));
    }
    System.out.println("");
}
3 голосов
/ 23 августа 2011

Вы можете попробовать (i-1)*B + j.

Другой вариант - просто использовать 1 для цикла:

int limit = A * B;
for (int i = 1; i <= limit; i++) {
    System.out.print(i + " ");
    if (i % B == 0) {
        System.out.println();
    }
}
2 голосов
/ 23 августа 2011

Я не знаю, почему это должен быть вложенный цикл? тем не менее, этот может работать

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");
}
2 голосов
/ 23 августа 2011
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();
}
1 голос
/ 24 августа 2011

Решение до смешного просто, просто используйте еще одну переменную и сосчитайте ее от 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();
}
1 голос
/ 23 августа 2011
 for(int i=1; i<=A; i++){
                 for(int j=1; j<=B; j++){
                      System.out.print(B*(i - 1) + j);
                 }
                 System.out.println();
 }
...