【发布时间】:2011-05-03 01:13:18
【问题描述】:
早些时候我发布了第 1 部分并得到了一些有趣的回应
print a series of numbers optimization part 1
这是另一种方法,您可以让程序在屏幕上打印一系列重复的数字,这里的目标是制作最有效/最快的算法
int series[] = [2,3,4,5,6,7,8,9,1]
int i = 9;
while(true)
{
print(series[i])
i = series[i] - 1;
}
当然忽略实际打印数字所产生的任何额外开销,因为这不是问题的目的
无论你做什么解决方案,都需要一个布尔条件语句(当为真),所以你也可以忽略它
此解决方案为 11 个 int 变量使用内存,但除此之外,它仅执行一次简单计算和每次迭代的一次变量分配。
那么这是解决无限数序列问题最省时的方法吗?
【问题讨论】:
-
@John 这显然是一个后续问题......
-
它会造成一些令人讨厌的溢出,因为数组有 9 个元素长,并且您指的是位置 9 的索引,而实际上最后一个位于位置 8。
-
这些愚蠢的问题有什么意义?我可以想到一百万个微不足道的问题,并询问如何对同样微不足道的解决方案进行微优化。
-
微优化此代码毫无意义。大部分时间将花费在 I/O 上,以便将这些内容输出到屏幕上。
标签: c++ algorithm optimization addition