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

来源:互联网 发布:mac os x 10.8 下载 编辑:程序博客网 时间:2024/04/28 04:46
题目描述:

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

输入:

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

输出:

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

样例输入:
3 47 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));
}
}

0 0
原创粉丝点击