process 命令在代码片段中重复了多少次?为什么?
How many times is the process command repeated in the code snippet? Why?
这段代码与特定的语言无关,实际上是关于两个四循环对最终结果的影响。
For(int i=0;i<n-i;i++)
for(int i=0;i<n-i;i++)
process;
“process”命令在代码中重复了多少次?
为什么?
让我们假设
For
是 for
的拼写错误
process;
实际上是语句 允许的语法
- 内部
int i
创建一个与外部i
不冲突的局部变量
- 所有内部
i
引用同一个变量
然后两个循环将迭代直到 2*i <= n
,即 n/2 次,对奇数 n 取 1 或取 1。
作为嵌套和独立的(见上面的假设),它将导致 process;
被执行 (n * n) / 4
次。
根据保持所有假设不变,我们可以在小数学版本中概括如下。
Number of times "process" command repeated = ceil(n/2) * ceil(n/2)
这个结果不管是偶数还是奇数。让我稍微解释一下,当我们尝试解决循环条件 i < n - i 中给出的不等式时,它给出 i < n / 2。如果我们用偶数代替 n,那么两个循环都会 运行 n/2 次。对于奇数 (例如 11),如果我们仔细观察内部循环,那么它将 运行 用于从 0 开始的所有整数,包括 5(对于外部循环类似)和总数运行s 是 6 次。另一方面,如果该数字是 10,则根据循环条件和总次数 运行,循环不能有 5 次 运行 s 是 5。现在来到我们的条件 i < n / 2,输入 11 和 10,结果将分别为 5.5 和 5。因此在一般情况下,循环次数 运行 是 ceil(n/2).
这段代码与特定的语言无关,实际上是关于两个四循环对最终结果的影响。
For(int i=0;i<n-i;i++)
for(int i=0;i<n-i;i++)
process;
“process”命令在代码中重复了多少次?
为什么?
让我们假设
For
是for
的拼写错误
process;
实际上是语句 允许的语法
- 内部
int i
创建一个与外部i
不冲突的局部变量
- 所有内部
i
引用同一个变量
然后两个循环将迭代直到 2*i <= n
,即 n/2 次,对奇数 n 取 1 或取 1。
作为嵌套和独立的(见上面的假设),它将导致 process;
被执行 (n * n) / 4
次。
根据
Number of times "process" command repeated = ceil(n/2) * ceil(n/2)
这个结果不管是偶数还是奇数。让我稍微解释一下,当我们尝试解决循环条件 i < n - i 中给出的不等式时,它给出 i < n / 2。如果我们用偶数代替 n,那么两个循环都会 运行 n/2 次。对于奇数 (例如 11),如果我们仔细观察内部循环,那么它将 运行 用于从 0 开始的所有整数,包括 5(对于外部循环类似)和总数运行s 是 6 次。另一方面,如果该数字是 10,则根据循环条件和总次数 运行,循环不能有 5 次 运行 s 是 5。现在来到我们的条件 i < n / 2,输入 11 和 10,结果将分别为 5.5 和 5。因此在一般情况下,循环次数 运行 是 ceil(n/2).