使用此功能
func f(x,y) => x % y
给定以下输入,以下是相应的输出。
f(0, 30) => 0
f(7.5, 30) => 7.5
f(15, 30) => 15
f(22.5, 30) => 22.5
f(30, 30) => 0
但是,我想要这个输出
f(0, 30) => 0
f(7.5, 30) => -7.5
f(15, 30) => 15
f(22.5, 30) => 7.5
f(30, 30) => 0
或者换句话说,我希望输出是
centred
周围 y / 2
我可以通过一些 if 语句来实现这一点,因此该函数变得......
f(x, y) => {
var res = x % y;
if (res === 0) return res;
if (res === y / 2) return res;
if (res > y / 2) return res - y / 2;
if (res < y / 2) return res * -1;
}
但感觉就像我在强力强迫一些可能有更优雅的解决方案的东西。我的数学很糟糕,我什至不知道要寻找什么。
这就是问题所在。这个功能有更优雅的解决方案吗?