代码片段中的 process 命令重复了多少次?为什么?

问题描述

这段代码与特定语言无关,实际上是关于两个四循环对最终结果的影响。

For(int i=0;i<n-i;i++)
  for(int i=0;i<n-i;i++)
    process;

代码中“处理”命令重复了多少次?
为什么?

解决方法

让我们假设

  • Forfor
  • 的拼写错误
  • process; 实际上是一个语句允许的语法
  • 内部 int i 创建一个与外部 i 不冲突的局部变量
  • 所有内部 i 引用同一个变量

然后两个循环将迭代直到 2*i <= n,即 n/2 次,对奇数 n 取 1。 嵌套和独立(参见上面的假设)将导致 process; 被执行 (n * n) / 4 次。

,

根据 1 保持所有假设不变,我们可以在小数学版本中概括如下。

Number of times "process" command repeated = ceil(n/2) * ceil(n/2)

此结果与偶数或奇数无关。让我解释一下,当我们尝试解决循环条件 i 中给出的不等式时,它给出 i 。如果我们用偶数代替 n,那么两个循环都将运行 n/2 次。对于奇数(比如 11),如果我们仔细观察内部循环,那么它将运行从 0 到 5 的所有整数(外层循环类似),并且运行的总次数为 6。 On另一方面,如果该数字为 10,则根据循环条件,循环不能运行 5 次,并且运行的总次数为 5。现在进入我们的条件 i ,输入 11 和 10,结果分别是 5.5 和 5。因此通常循环运行的次数是ceil(n/2)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...