我有一些困惑:
for i = 1 to n
这个伪代码是不是表示for(i=1; i<n; i++)
或 for(i=1; i<=n; i++)
?
如果他们中的一个,那么另一个的伪代码是什么?
最佳答案
应该理解为包括一个迭代,其中i
取n
的值。
然而,对于伪代码并没有严格的规定,所以如果对一段实际的伪代码有疑问,那么这意味着代码没有实现它应该做的事情:明确地描述一个算法而不任何编程语言。
以下是为什么应该将其理解为 include n
的一些论点:
- 当用简单的英语告诉某人从 1“数到 100”时,我们的意思是他们应该在末尾加上 100。这可能是最有力的论据。
- 据我所知,没有一种编程语言在
for
循环语法中使用to
关键字,其中to
后面的值不是 to被包含在迭代中。另一方面,BASIC像语言(例如 vba )具有该语法,并且“to”值将用于最终迭代。 - 关于 Wikipedia给出了伪代码循环的一些示例,在使用
to
关键字的地方,最终迭代使用该值。 - 如果此循环的目的是访问
n
元素数组中的每个值(一种非常常见的情况),则没有歧义:for i = 1 to n
告诉我们数组的第一个元素的位置为 1,因此它的最后一个位置是位置n
。在伪代码中使用这种从 1 开始的数组索引并不少见,因为这对非程序员来说更直观。但是,如果在这样的数组上下文中,您在伪代码中看到for i = 0 to n
,则应该会发出一些警报。这肯定会让人觉得模棱两可。
关于algorithm - 带有for循环的伪代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67949819/