不用加减乘除做加法

    技术2024-10-08  62

    1.题目描述

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

    2.代码展示

    class Solution { public: int Add(int num1, int num2) { /*int carry=num1&num2; int sum=num1^num2; while (carry) { int newsum=sum^(carry<<1); carry=sum&carry<<1; sum=newsum; } return sum;*/ while (num2!=0) { int tmp = num1^num2; num2=(num1&num2)<<1; num1=tmp; } return num1; } };

    3.解题思路

    模拟加法的过程,如果没有进位,就可以直接输出,有进位就一直加(抑或) 首先判断有没有进位,有进位就进入循环,得出新的二进制序列,继续算进位,然后继续求和,直到没有进位输出。

    Processed: 0.011, SQL: 9