在有限int元素的字段中添加?

时间:2017-01-27 10:30:52

标签: java math algebra

我需要编写一个函数(在Java中),它具有以下输入:

  1. int amountFieldElements
  2. int summandOne
  3. int summandTwo
  4. amountFieldElement描述了从1开始的范围内的int数量(例如,1,2,3,4或仅1)。 summandOne是此范围内的int,summandTwo可以是任何非负int。

    该功能必须将summandTwo添加到summandOne。如果结果大于amountFieldElement,则必须从1开始。

    我试图简单地使用modulo:(summandOne + summandTwo)%amountFieldElements

    但这通常是错误的,例如(3 + 1) % 4 = 0但我需要它4

    示例:如果amountFieldElements = 4

    2 + 2 = 4将保持为4

    3 + 2 = 5将成为1

    4 + 2 = 6将成为2

    amountFieldElements = 1

    1 + 0 = 1将保持为1

    1 + 1 = 2也是1

    - >任何结果都是1在这里

1 个答案:

答案 0 :(得分:1)

这样的事情会起作用:

int result = (summandOne + summandTwo) % amountFieldElements;
if (result == 0) result = amountFieldElements;

另一种方法,更短但更难理解是:

int result = (summandOne + summandTwo - 1) % amountFieldElements + 1;