1.不用加減乘除做加法
解法:分為三步①各位相加不進(jìn)位沫换,即先按位異或撒遣;②做進(jìn)位喳逛,按位與并左移位瞧捌;③結(jié)果相加,直至沒有進(jìn)位
int add(int num1, int num2)
{
int sum, carry;
do
{
sum = num1 ^ num2;//先按位異或
carry = (num1 & num2) << 1;//按位與并左移位
num1 = sum;
num2 = carry;
}while(num2 != 0);//結(jié)果相加润文,直至沒有進(jìn)位
return num1;
}
2.不使用新變量姐呐,交換變量的值
解法一:
a = a ^ b;
b = a ^ b;
a = a ^ b;
解法二:
a = a + b;
b = a - b;
a = a - b;
持續(xù)更新中。典蝌。曙砂。