我需要编写一个函数(在Java中),它具有以下输入:
int amountFieldElements
int summandOne
int summandTwo
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在这里
答案 0 :(得分:1)
这样的事情会起作用:
int result = (summandOne + summandTwo) % amountFieldElements;
if (result == 0) result = amountFieldElements;
另一种方法,更短但更难理解是:
int result = (summandOne + summandTwo - 1) % amountFieldElements + 1;