不用加减乘除做加法

来源:互联网 发布:linux如何跟踪路由 编辑:程序博客网 时间:2024/09/21 06:18

//写一个函数,求两个整数之和,要求在函数体内不得使用 +,-,*,/ 四则运算符号。#include "iostream"using namespace std;//分三步:1.不算进位相加sum,2.仅算进位carry。3.sum与carry相加,这里循环了,如果carry为0,over。int add(int a, int b){int sum_without_carry = 0;int carry_only = 0;while (b != 0){sum_without_carry = a^b;carry_only = (a&b) << 1;a = sum_without_carry;b = carry_only;}return a;}int main(){cout << add(-1, -3);return 0;}

思维很棒!


0 0