zoukankan      html  css  js  c++  java
  • 不用加减乘除做加法

    题目描述

    写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号
    思路:使用^ 和 & 实现加法运算,
    a^b 得到的结果是未进位的值
    a&b 左移一位    得到的是进位值
    将两个相加就是结果(相加过程重复上述,知道没有进位为止)

    代码:

          int Add(int num1, int num2)
        {
            int n = num1 ^ num2;
            int jw = num1 & num2;
            int tmp = 0;
            while(jw)
            {
                jw <<= 1;
                 tmp = n;
                 n = jw ^ n;
                jw = jw & tmp;
            }
            return n;
        }

    或者简化变量的写法;

        public int Add(int num1,int num2) {
            while (num2!=0) {
                int temp = num1^num2;
                num2 = (num1&num2)<<1;
                num1 = temp;
            }
            return num1;
        }

    递归写法:

     int Add(int num1, int num2)
        { 
          return num2 ? Add(num1^num2, (num1&num2)<<1) : num1;
     
        }
  • 相关阅读:
    ASP.Net 反射显示
    ASP.Net 反射简单工厂模式
    ASP.Net MVC生成验证码
    ASP.Net EF架构
    ASP.Net 邮箱发送
    ASP.Net 反射简单
    ASP.Net 显示
    新年快乐
    测试开发比
    Linkbot介绍
  • 原文地址:https://www.cnblogs.com/Lune-Qiu/p/9139934.html
Copyright © 2011-2022 走看看