Featured image of post 剑指 Offer 65. 不用加减乘除做加法

剑指 Offer 65. 不用加减乘除做加法

题目描述

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

示例:

  • 输入: a = 1, b = 1
  • 输出: 2

提示:

  • ab 均可能是负数或 0
  • 结果不会溢出 32 位整数

解法一:位运算

1
2
3
4
5
6
7
8
func add(a int, b int) int {
    for b != 0 {
        carry := uint(a&b) << 1
        a = a ^ b
        b = int(carry)
    }
    return a
}
Licensed under CC BY-NC-SA 4.0
最后更新于 2023/07/01 21:30:04
comments powered by Disqus
Built with Hugo
主题 StackJimmy 设计