要查找输入的下一个奇数,使用以下代码:
a=5.4; // Input
b=Math.ceil(a); // Required to turn input to whole number
b=b+(((b % 2)-1)*-1); // Gives 7
需要 ceil 舍入函数。
这样做安全吗?有没有更紧凑的方法?
编辑:当输入已经是奇数时,什么也不会发生。例如 5.0 将返回 5
最佳答案
怎么样
b += b % 2 ^ 1;
除以 2 后的余数将始终为 0 或 1,因此 ^
运算符(异或)将其翻转到相反的位置。
(此外,(b & 1) ^ 1
也可以。哦,我猜 b = b ^ 1
可以用于正整数,但它会对于大整数会有问题。)
关于javascript - javascript中的下一个奇数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11194087/