可以解释一下print语句被执行了多少次吗

// For the below algorithm, calculate the exact number of times

   // System.out.println statement is executed as a function of n. Assume n≥1


    for (int i=0; i<=n; i++) {

    for (int j = i; j < 2*n; j++) {

    System.out. println(”1 iteration executed!”);

    }

    }

这是解决方案,但我很难理解数学。


Overall RT = 2n + (2n-1) + (2n-2) + … + n =

 = (n+1)*n + (n+(n-1)+(n-2)+…+1+0) =

 = n2 + n + n*(n+1)/2 =

 = 1.5*n2 + 1.5n


慕运维8079593
浏览 292回答 2
2回答

蝴蝶不菲

循环在第一次迭代中运行 2n 次,然后每次减少 1 次,直到它运行时的第 (n+1) 次迭代n。2n&nbsp;+&nbsp;(2n-1)&nbsp;+&nbsp;(2n-2)&nbsp;+&nbsp;…&nbsp;+&nbsp;n请注意,n+1该系列中有术语。让我们n从每个术语中减去并分别添加它们。这给我们(n+1)*n加上每一项减去 n:(n+1)*n&nbsp;+&nbsp;(2n-n)&nbsp;+&nbsp;(2n-1-n)&nbsp;+&nbsp;…&nbsp;+&nbsp;(n-n)这简化为:(n+1)*n&nbsp;+&nbsp;n&nbsp;+&nbsp;(n-1)&nbsp;+&nbsp;(n-2)&nbsp;+&nbsp;…&nbsp;+&nbsp;0现在,众所周知, 的总和1+2+3+...+n是(n+1)*n/2,而这正是n + (n-1) + (n-2) + … + 0:(n+1)*n&nbsp;+&nbsp;(n+1)*n/2现在我们可以将它相乘:n^2&nbsp;+&nbsp;n&nbsp;+&nbsp;(n^2)/2&nbsp;+&nbsp;n/2这简化为:1.5n^2&nbsp;+&nbsp;1.5n

哈士奇WWW

所以让我们一步一步来。假设 n 的值为 4。i开始于0soj也开始在0这个时间j增量直到 1 小于2*n8这意味着j这个时间的值将是0, 1, 2, 3, 4, 5, 6, 7,总共 8 个不同的值i增量1所以j在开始1这段时间j仍然将递增,直到1小于2*n或8的值j,这一次将是1, 2, 3, 4, 5, 6, 7,共7个不同的值。比上次少了1!下一次, 的值j将为2, 3, 4, 5, 6, 7。6 个不同的值。这种模式将一直持续到j开始4。然后j将采用 4 个不同的值,循环将退出。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java