当前位置:   article > 正文

两个整数求和,不能使用+,-,*,/四则运算符_求和公式不能做复杂的四则运算吗

求和公式不能做复杂的四则运算吗

1、题目描述,不得使用四则运算符给两个数求和

2、我的思路

必备知识点

两个数的和为不考虑进位情况下两个数的和加上进位

两个数异或结果为不考虑进制的情况下给两个数求和,如5^7=2

两个数相与(&)再左移一位结果为两个数相加后的进位,如(5&7)<< 1 =10 

将上述两个值相加则为两个数相加结果为两个数求和,如5^7 + (5&7)<<1 = 2+10 = 12,相当于输入前两个的结果来递归调用自己

3、代码实现

  1. int addWithoutArithmetic(int num1, int num2)
  2. {
  3. if (num2 == 0)
  4. {
  5. return num1;
  6. }
  7. int a = num1^num2;
  8. int b = (num1 & num2) << 1;
  9. return addWithoutArithmetic(a, b);
  10. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/175692?site
推荐阅读
相关标签
  

闽ICP备14008679号