📄 从判断两个数的奇偶 xing 看代码和算法优化.txt
字号:
从判断两个数的奇偶 xing 看代码和算法优化[原创]
下午有个想法,编个代码来测试2个整数的奇偶 xing 是否相同。本来想写成下面的样子:
int judge(int m,int n)
{
if((m+n)%2==1)
return 1; //如果2个参数具有不同的奇偶 xing ,一个为奇数一个为偶数则返回1
else
return 0;//如果2个参数具有相同的奇偶 xing 则返回0
}
后来想了一下return语句的特点,就改成了下面的样子:
int judge(int m,int n)
{
if((m+n)%2==1)
return 1;
return 0;
}
再后来考虑到m+n可能会导致数据溢出,又改成了下面的样子:
int judge(int m,int n)
{
if(((m%2==1)&&(n%2==0))||((m%2==0)&&(n%2==1)))
return 1;
return 0;
}
再考虑到我们只是为了判断2个参数的奇偶 xing ,与具体的值无关,所以,我们可以改变参数值,只要保证其奇偶 xing不变就可以了。因此,我又把代码修改成这样:
int judge(int m,int n)
{
int temp=(m&1)+(n&1);//仅保留最低位,以便测试奇偶 xing
return temp%2;
}
应该还有更简单的方法,我想起来以后就补充。也欢迎朋友们不吝赐教。
补充一个,是从电脑爱好者论坛happymoon那里得到的思路(他的原话是“最低位异或”,我做了简单修改),在此感谢。代码如下:
int judge(int m,int n)
{
return (m^n)%2;
}
晕了,奇偶xing的xing被屏蔽了,只好用拼音
BugEyes 发表于 2005-7-8 20:59:00
阅读全文(101) | 回复(1) | 引用通告(0) | 编辑
--------------------------------------------------------------------------------
上一篇:文件恢复原理
下一篇:每个人都有自己的精彩
回复:从判断两个数的奇偶性看代码和算法优化[原创]
return ((m&1)+(n&1))%2;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -