您的位置:首页 > 其它

【九度】【1507】不用加减乘除做加法

2015-06-25 11:45 190 查看
题目描述:

写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。

输入:

输入可能包含多个测试样例。

对于每个测试案例,输入为两个整数m和n(1<=m,n<=1000000)。

输出:

对应每个测试案例,输出m+n的值。

样例输入:
3 4
7 9


样例输出:
7
16

解题思路:^运算可以得到两个数无进位的和,&运算并左移可以得到两个数的进位,两个相当于再次相加,重复步骤,直到进位为0

#include <stdio.h>

int addNum(int a,int b){
int n,m;
do{
n=a^b;
m=(a&b)<<1;
a=n;
b=m;
}while(m!=0);
return a;

}

void main(){
int a,b;
while(scanf("%d%d",&a,&b)!=EOF){
printf("%d\n",addNum(a,b));
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: