标签:使用 os io amp ios c ad return
1)使用位运算,sum1=a^b 相当于不进位的加法,因为0+1=1.1+0=1.1+1=0(因为不进位)0+0=0 正好是或运算
2)sum2=(a&b)<<1,相当于算进位的数,因为只有1+1时进位
3)结果就是sum1+sum2,当然如果这个加法还需要进位就执行第四步
4)重复上面的过程一直到进位数(a&b)<<1为零,也就是不需要进位为止
#include<iostream>
#include<stdio.h>
using namespace std;
int add(int a,int b){
if(b==0)//当进位数为零时,a就是结果了
return a;
int num1,num2;
num1=a^b;
num2=(a&b)<<1;
add(num1,num2);
}
int main(){
int a,b;
while(scanf("%d%d",&a,&b)){
cout<<add(a,b)<<endl;
}
}
不用+、-、×、÷数字运算符做加法,布布扣,bubuko.com
标签:使用 os io amp ios c ad return
原文地址:http://blog.csdn.net/youngyangyang04/article/details/38355333