我想以限制但以循环方式倒计时。
让我们说限制是12,当前迭代是10然后我想结果为10 - 2 = 8 类似的方法,如果当前迭代为0,我应该得到如下结果0 - 2 = 11而不是-2。
主要认为我希望将其作为算法/公式。
感谢。
答案 0 :(得分:4)
使用modolus运算符和Zn group:
(i < 0 ? n + i : i) % n
其中n
是数字 - 示例中为12,i
是迭代编号。
(假设为-n <= i
,否则您可能需要为某些自然k*n - i
减去k
以确保结果为正。如果您反复执行上述步骤,则不应该一个问题。)
作为旁注,在Zn组中的纯数学概念-i == n-i
中,但我知道的大多数编程语言都没有进行此计算,并且在模态计算之后,左操作数的符号保持不变。
为此,我们首先检查标志,并确保它是正面的。