2 回答
TA贡献2012条经验 获得超12个赞
您可以[0, high - low]通过删除low您的值将您的值放入间隔中,然后将您想要的数字添加到它,取总和的模数,最后加low回来回到范围内[low, high]
public static void main(String[] args) {
int low = 65, high = 90;
System.out.println(addWithinInterval(85, 10, low, high));
}
private static int addWithinInterval(int value, int add, int low, int high) {
return (value - low + add) % (high - low + 1) + low;
}
TA贡献1775条经验 获得超11个赞
我将随机选择一个元素并添加 10。如果 90 的交叉范围返回到 65,该值是否可能?
当然,余数运算符会为您做到这一点:
n = (n - 65) % (90 - 65) + 65;
示例(实时复制):
int n = 85;
for (int x = 0; x < 10; ++x) {
n += 10;
n = (n - 65) % (90 - 65) + 65;
System.out.println(n);
}
或在现场:Java 和 JavaScript 不同,但它们的%运算符工作相同,因此:
let n = 85;
for (let x = 0; x < 10; ++x) {
n += 10;
n = (n - 65) % (90 - 65) + 65;
console.log(n);
}
添加回答
举报