javascript - javascript中的下一个奇数

标签 javascript algorithm math

要查找输入的下一个奇数,使用以下代码:

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/

相关文章:

javascript - 在 AngularJS 中使用来自不同 Controller 的 $scope 函数

javascript - dust.js if 语句以大小和 eq 作为条件

c# - 在 C# 中检测(通过反射)枚举是否为 "Flags"类型的策略

math - 自定义类型上的函数的定点组合器?

ios - 如何去除图像的噪点?

algorithm - 最短的两条不相交的路径;两个来源和两个目的地

Javascript - 空节点问题

c++ - 插入排序不对第一个元素进行排序?

arrays - 你如何找到异或为零的整数数组的最大子集

javascript - 当 jQuery 前置加载中的 img 时隐藏 div