gpt4 book ai didi

algorithm - 从伪代码实现循环

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:49:06 26 4
gpt4 key购买 nike

我想知道是否有人可以向我建议如何在以下伪代码中实现这个循环:

8: loop
9: while f[0] = 0 do
10: for i = 1 to N do
11: f[i ¡ 1] = f[i]
12: c[N + 1 - i] = c[N - i]
13: end for
14: f[N] = 0
15: c[0] = 0
16: k = k + 1
17: end while
18: if deg(f) = 0 then
19: goto Step 32
20: end if
......... ...... ....
31: end loop

我的问题是我应该如何实现从第 8 行开始到第 31 行结束的循环;我对第 8 行到第 31 行之间的语句很满意,但是我在第 8 行使用了什么样的循环,我为循环提供了哪些条件?

提前致谢。

最佳答案

这是一个无限循环。没有条件,永远循环。唯一的出路是进入第 19 步。在类 C 语言中,您可以将其编写为 while (true)for (;;):

for (;;) {
// ...

if (deg(f) == 0) {
goto afterLoop;
}

// ...
}

afterLoop:
// ...
不过,

goto 不受欢迎。最好将 goto Step 32 替换为 break 语句,它会立即退出循环:

for (;;) {
// ...

if (deg(f) == 0) {
break;
}

// ...
}

值得一提的是,如果您没有步骤 21-30,则可以使用 do/while 循环,其中循环条件位于循环底部而不是顶部:

do {
// ...
}
while (deg(f) != 0);

如果第 18-20 行是循环中的最后几行,那将起作用。由于它们不是,因此看起来选项 #2 是可行的。

关于algorithm - 从伪代码实现循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2315685/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com