剑指offer系列源码-不用加减乘除做加法

来源:互联网 发布:知乎 电网 编辑:程序博客网 时间:2024/05/29 10:32
题目1507:不用加减乘除做加法时间限制:1 秒内存限制:128 兆特殊判题:否提交:782解决:581题目描述:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。输入:输入可能包含多个测试样例。对于每个测试案例,输入为两个整数m和n(1<=m,n<=1000000)。输出:对应每个测试案例,输出m+n的值。样例输入:3 47 9样例输出:716


解法:模拟二进制加

#include <iostream>#include<stdio.h>using namespace std;int add(int num1,int num2){    int sum,carry;    do{        sum = num1^num2;        carry = (num1&num2)<<1;        num1 =sum;        num2=carry;    }while(num2);    return num1;}int main(){    int n,m;    while(scanf("%d%d",&n,&m)!=EOF){        printf("%d\n",add(n,m));    }    return 0;}


0 0
原创粉丝点击