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