不用加减乘除做加法 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

   

    /****************************************************************

    题目:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/

    四则运算符号,

不用加减乘除做加法

    ****************************************************************/

    //对数字做运算,除了四则运算,就只剩下位运算

    #include

    int Add(int num1, int num2)

    {

    int sum, carry;

    do

    {

    sum = num1 ^ num2;

    carry = (num1 & num2) << 1;

    num1 = sum;

    num2 = carry;

    }

    while(num2 != 0);

    return num1;

    }

    // ====================测试代码====================

    void Test(int num1, int num2, int expected)

    {

    int result = Add(num1, num2);

    if(result == expected)

    printf("%d + %d is %d. Passed\n", num1, num2, result);

    else

    printf("%d + %d is %d. Failed\n", num1, num2, result);

    }

    int main()

    {

    Test(1, 2, 3);

    Test(111, 899, 1010);

    Test(-1, 2, 1);

    Test(1, -2, -1);

    Test(3, 0, 3);

    Test(0, -4, -4);

    Test(-2, -8, -10);

    }

   

最新文章