如何使用C#查找数字是偶数还是奇数?

时间:2014-12-15 16:39:08

标签: c# syntax

我知道有一种方法可以使用模数(What is the fastest way to find if a number is even or odd?)查找数字是偶数还是奇数但是我想知道是否有像Math.Even或Math.Odd这样的C#函数。是使用模数的唯一方法吗?

(我知道这听起来像个愚蠢的问题,但我敢打赌我的老师说C#中有一个内置的功能,他声称没有....)

3 个答案:

答案 0 :(得分:9)

它可能算作作弊,但如果您使用BigInteger,它会有IsEven方法。

如MSDN中所述,调用此方法相当于:

value % 2 == 0;

参考:

答案 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 作者尝试了所有流行的方法来检查数字是否均匀,我建议您查看页面底部显示的表格!