这是代码,我知道它做了什么,但我不明白,if条件是做什么的?
if(n&1)
{
for(i=n/2,j=n/2+1;;i--,j++)
if(__gcd(i,j)==1)
{
cout<<i<<" "<<j<<endl;
break;
}
}
else
{
for(i=n/2-1,j=n/2+1;;i--,j++)
if(__gcd(i,j)==1)
{
cout<<i<<" "<<j<<endl;
break;
}
}
return 0;
}
答案 0 :(得分:3)
它是一个按位运算符。这是一个搜索词!
&amp;运算符提供了一个掩盖&#34;取消&#34;第一个中的位依赖于它们是否在第二个参数中设置 - 因此假设N是数字17,以二进制表示的是00010001,二进制中的数字1是00000001,因此将两个屏蔽在一起将是&#34;空白&#34;第一组位,将N作为00000001。
基本上,特定if语句会丢弃除最后一位之外的所有位,即0或1,因此它是检测N是奇数还是偶数的条件。