Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用于查找计数数字的嵌套循环_Java_Loops_For Loop_Nested Loops - Fatal编程技术网

Java 用于查找计数数字的嵌套循环

Java 用于查找计数数字的嵌套循环,java,loops,for-loop,nested-loops,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++){

我从来没有想过我在嵌套循环方面会遇到问题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("?");}}
我也尝试了一些其他的组合,但没有运气,这可能是直截了当的,但这是我第一次面对这种情况。提前谢谢

for(inti=1;i
for(inti=1;i你可以试试
(i-1)*B+j

 for(int i=1; i<=A; i++){
                 for(int j=1; j<=B; j++){
                      System.out.print(B*(i - 1) + j);
                 }
                 System.out.println();
 }
另一个选项是仅将1用于循环:

int limit = A * B;
for (int i = 1; i <= limit; i++) {
    System.out.print(i + " ");
    if (i % B == 0) {
        System.out.println();
    }
}
int limit=A*B;
对于(inti=1;i您可以尝试
(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();
    }
}
int limit=A*B;

对于(inti=1;i
for)(inti=1;i
for)(inti=1;i我不知道为什么它必须是一个嵌套循环?但是,这个可能会起作用

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");
}
for(int i=0;i对于(intj=i*B;j我不知道为什么它必须是一个嵌套循环?但是,这个可能会起作用

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");
}
for(int i=0;i对于(intj=i*B;j
for(inti=0;i
for(inti=0;i)来说,解决方案简单得可笑,只需再使用一个变量并将其从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();
}
q=0;

对于(inti=0;i来说,解决方案非常简单,只需再使用一个变量,并将其从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();
}
q=0;

for(int i=0;i如何循环
for(int i=1;我查看所需矩阵中的模式。第0行从1开始,第1行从4开始,第2行->第7行,第3行->第10行。想出一个公式来复制它,你就完成了一半。提示:从0开始循环,而不是从1开始。提示2:让你的公式根据行号和B的值工作。只循环
如何(int i=1;我查看所需矩阵中的模式。第0行从1开始,第1行从4开始,第2行->第7行,第3行->第10行。想出一个公式来复制它,你已经完成了一半。提示:从0开始循环,而不是从1开始。提示2:让你的公式根据行号和B的值工作。可能不应该使用printlnYou你是对的,但我回答的是公式问题(编辑,谢谢)可能不应该使用println你是对的,但我回答的是公式问题(编辑,谢谢)问题是关于嵌套循环。我猜下一个投票者认为printf在Java中不可用。答案可以通过使用
System.out.printf
更清楚。然而,它应该是
I%B
@Sam true,但这个答案确实为OP提供了一个更干净的单行解决方案。OP可能不知道这样的东西甚至存在。Question是关于嵌套循环的。我猜下一个投票者认为printf在Java中不可用。答案可以通过使用
System.out.printf
更清楚。但是,它应该是
I%B
@Sam true,但这个答案确实为OP提供了一个更干净的单行解决方案。OP可能没有意识到这样的东西甚至存在。我我认为这是一个数学上合理的解决方案。小补丁,(B(i-1)+j);应该改为(B*(i-1)+j);@Serith谢谢你的捕获。修复。也从1循环切换到了0循环。有了复制的OP的源代码并在没有意识到的情况下对其进行了编辑。我自己更喜欢0的基。我认为这是数学上合理的解决方案。小补丁,(B(i-1)+j);应更改为(B*(i-1)+j);@Serith感谢您的捕获。已修复。还从1循环切换为0循环。已复制OP的源代码并在未意识到的情况下对其进行编辑。我自己更喜欢0基。
q = 0;
for(int i=0; i<A; i++){
    for(int j=0; j<B; j++){
        q++;
        System.out.print(q + " ");
    }
    System.out.println();
}