当前位置: 首页 > 面试题库 >

在Java中的嵌套for循环中执行代码的次数

李宜然
2023-03-14
问题内容

我最近正在阅读Robert Sedgewick写的《算法》一书。
在阅读“算法分析”时,我遇到了一段代码。代码
如下:

public static int count(int a[]) {
    int N = a.length;
    int cnt = 0;
    for (int i = 0; i < N; i++) {

        for (int j = i + 1; j < N; j++) {
            for (int k = j + 1; k < N; k++) {
                if (a[i] + a[j] + a[k] == 0) {  //here 
                    cnt++;
                }
            }
        }
    } 
    return cnt
}

我想知道的是-loop中的if-statementfor被执行了多少次。这本书提供的答案是N(N-1)(N-2)/6。但是我不知道为什么,有人可以解释。


问题答案:

您可以手动执行此操作,但是WolframAlpha在此方面要好得多。

不难验证

( _N_ -1)( _N_ -2) = _N_ 2 - 3 _N_ + 2


 类似资料:
  • 问题内容: 我正在尝试使用嵌套的for循环显示一个星号菱形。 到目前为止,这是我的代码: 这很接近,但是我要两次打印9个星号。 如何调整第二个for循环以7个星号和2个空格开始输出? 谢谢您的帮助! 问题答案: 在您的第一个for循环中,删除=标记,然后使用<例如 完整代码

  • 对Java来说很新鲜,我在大学的一个入门班做一个项目。我正在尝试做一个方法,在String数组中搜索输入的状态并返回索引。如果用户输入不在数组中的查询,我希望它要求一个新的状态来搜索。我的例外是说“变量statePotion可能尚未初始化。”下面是代码。 提前谢谢!

  • 和其他编程语言一样, Java 允许循环嵌套。如果把一个循环放在另一个循环体内,那么就可以形成嵌套循环。 嵌套循环既可以是 for循环嵌套 while 循环,也可以是 while 循环嵌套 do-while 循环 …… 即各种类型的循环都可以作为外层循环,也可以作为内层循环。 当程序遇到嵌套循环时,如果外层循环的循环条件允许,则开始执行外层循环的循环体,而内层循环将被外层循环的循环体来执行——只是

  • 我对python中双for循环的使用感到困惑,这是我的代码: 输出如下: 它只对外循环的第一个值执行内循环,为什么会发生这种情况?我怎样才能让它在第一个和第二个变量的所有组合上循环?

  • 我在下面的代码中使用了嵌套的for循环,并且我有一些条件来中断内部的for循环,这提高了代码的性能。 现在,如何使用 Java 8 流来执行相同的逻辑?我想出了下面的代码: 在这里,我不能在java流中使用< code>break语句,所以我使用了< code>return语句,但它仍然运行内部循环,因为它不会中断内部循环,所以性能没有提高。

  • 我想在一个并行外部循环中运行一个包含for循环(应该并行运行)的函数。因此看起来如下所示: 给定上面的代码,我希望在函数中为循环创建5个并行线程,并且希望这5个线程中的每个线程创建另一个线程来运行自己的并行for循环。