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

    不用加减乘除做加法

    题目描述

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

    题目链接: 不用加减乘除做加法

    代码

    /**
     * 标题:不用加减乘除做加法
     * 题目描述
     * 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
     * 题目链接:
     * https://www.nowcoder.com/practice/59ac416b4b944300b617d4f7f111b215?tpId=13&&tqId=11201&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
     */
    public class Jz48 {
    
        /**
         * a ^ b 表示没有考虑进位的情况下两数的和,(a & b) << 1 就是进位。
         * 递归会终止的原因是 (a & b) << 1 最右边会多一个 0,那么继续递归,进位最右边的 0 会慢慢增多,最后进位会变为 0,递归终止。
         */
        public int add(int num1, int num2) {
            return num2 == 0 ? num1 : add(num1 ^ num2, (num1 & num2) << 1);
        }
    
        public static void main(String[] args) {
            Jz48 jz48 = new Jz48();
            System.out.println(jz48.add(2, 6));
        }
    }
    

    【每日寄语】 要相信,看似不起波澜的日复一日,一定会在某一天让我们看到坚持的意义。

  • 相关阅读:
    tomcat与resin的比较
    Linux Resin 安装配置
    [BZOJ3456]城市规划
    ZJOI 2017 仙人掌
    「LibreOJ NOI Round #1」动态几何问题
    [SDOI2015]约数个数和
    codeforce 940F
    codeforce 940F
    codeforce 940E
    [NOI2009]植物大战僵尸
  • 原文地址:https://www.cnblogs.com/kaesar/p/15769875.html
Copyright © 2011-2022 走看看