题目描述:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
问题分析:根据做题经验,不用四则运算符那就是利用逻辑运算符来实现。首先按位与运算是看哪个位上二进制求和需要进位,进位后该位上位0,前一位上为1,也就是将&运算的结果左移一位;其次异或运算是看哪个位上分别为0,1,这样二进制求和直接相加无需进位。知道这两个位运算后便可重复进行与运算和异或运算,然后判断是否还有需要进位的部分,如果没有则推出循环。

代码截图:

题目描述:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
问题分析:根据做题经验,不用四则运算符那就是利用逻辑运算符来实现。首先按位与运算是看哪个位上二进制求和需要进位,进位后该位上位0,前一位上为1,也就是将&运算的结果左移一位;其次异或运算是看哪个位上分别为0,1,这样二进制求和直接相加无需进位。知道这两个位运算后便可重复进行与运算和异或运算,然后判断是否还有需要进位的部分,如果没有则推出循环。
代码截图:
本文标题:【剑指Offer刷题小记】不用加减乘除做加法(JAVA版)
本文链接:https://www.haomeiwen.com/subject/zvtcmhtx.html
网友评论