我知道有一种方法可以使用模数(What is the fastest way to find if a number is even or odd?)查找数字是偶数还是奇数但是我想知道是否有像Math.Even或Math.Odd这样的C#函数。是使用模数的唯一方法吗?
(我知道这听起来像个愚蠢的问题,但我敢打赌我的老师说C#中有一个内置的功能,他声称没有....)
答案 0 :(得分:9)
答案 1 :(得分:4)
.NET中没有为您调用%2==0
的方法。这个简单的方法可能不值得花时间为你实现,因为替代方案实际上是五个字符。
如果您真的想要,您当然可以编写自己的命名方法来执行此计算。
答案 2 :(得分:1)
实际上,有一些有趣的点,其他一些检查方法是偶数。当你使用%
时,你应该像上面所写的那样用0检查你的值,因为与1比较将给出所有负整数的错误答案。
bool is_odd(int n) {
return n % 2 == 1; //this method is incorrect for negative numbers
}
bool is_odd(int n) {
return n % 2 != 0;
}
第二种流行方式如下所示
bool is_odd(int n) {
return x & 1 != 0;
}
此方法使用低位始终设置为奇数的事实。 并且,正如许多人倾向于认为的那样 - 检查数字的第一位更快,但对于C#(至少)来说并非如此。速度几乎相同,模数通常更快! 有article 作者尝试了所有流行的方法来检查数字是否均匀,我建议您查看页面底部显示的表格!