我正在尝试编写一个 for 循环,其中我必须以指数方式递增。我在用stride
功能,但它不会工作。
这是 C++ 代码,我正在尝试编写一个快速版本。
for (int m = 1; m <= high - low; m = 2*m){}
你能帮我用快速版本编写这段代码吗?
while 循环可能是最简单的解决方案,但这里有一个替代方案:
for m in sequence(first: 1, next: { 2 * $0 }).prefix(while: { $0 <= high - low }) {
print(m)
}
sequence()
(惰性地)生成序列 1, 2, 4, ..., 以及prefix(while:)
将该序列限制在给定范围内。
这种方法的一个小优点是m
仅在循环内部声明(以便以后不会意外使用它),这是一个constant这样就不会在循环内无意中修改它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)