如何仅用单个变量生成0、1、-1、2、-2…交替正负递增序列?
单变量生成目标序列的Lua实现
可以仅用单个变量n实现,核心是通过判断当前n的状态,用递推公式更新值,无需额外变量。以下是具体实现:
实现代码
local n = 0 -- 起始值为0,符合要求 -- 示例:输出前9项序列 for _ = 1, 9 do print(n) -- 递推更新n,生成下一个序列值 n = n == 0 and 1 or (n > 0 and -n or (-n + 1)) end
逻辑说明
- 当
n为0时,下一个值为1; - 当
n为正数时,下一个值取其相反数(如1→-1,2→-2); - 当
n为负数时,下一个值为其绝对值加1(如-1→2,-2→3)。
运行上述代码会输出目标序列:0, 1, -1, 2, -2, 3, -3, 4, -4。
内容的提问来源于stack exchange,提问作者Bigfoot71
相关产品推荐
相关产品推荐

