-3

我想以有限但循环的方式倒计时。

假设限制为 12,当前迭代为 10,那么我希望结果为 10 - 2 = 8,如果当前迭代为 0,我应该得到如下结果:0 - 2 = 11 而不是 -2。

主要认为我想将其作为算法/公式。

谢谢。

4

1 回答 1

4

使用模运算符和 Zn

(i < 0 ? n + i : i) % n

在您的示例中,数字在哪里n- 12,并且i是迭代次数。

(假设-n <= i,否则您可能需要减去k*n - i一些自然k值以确保结果为正。如果您反复执行上述步骤,这应该不是问题。)


作为旁注,在-i == n-iZn 组中的纯数学概念中,但我知道的大多数编程语言都不会进行此计算,并且在模数计算之后,左操作数的符号保持不变。
为此,我们首先检查标志,并确保它是正面的。

于 2012-12-06T15:42:04.077 回答