leetcode算法题--求1+2+…+n

原题链接:https://leetcode.cn/problems/qiu-12n-lcof/description/?envType=study-plan-v2&envId=coding-interviews

快速乘,俄罗斯农民乘法

func sumNums(n int) int {
  res := 0
  A, B := n, n + 1

  add := func() bool{
    res += A
    return res > 0
  }

  _ = (B&1) > 0 && add() 
  A <<= 1 
  B >>= 1

  _ = (B&1) > 0 && add() 
  A <<= 1 
  B >>= 1

  _ = (B&1) > 0 && add() 
  A <<= 1 
  B >>= 1

  _ = (B&1) > 0 && add() 
  A <<= 1 
  B >>= 1

  _ = (B&1) > 0 && add() 
  A <<= 1 
  B >>= 1

  _ = (B&1) > 0 && add() 
  A <<= 1 
  B >>= 1

  _ = (B&1) > 0 && add() 
  A <<= 1 
  B >>= 1

  _ = (B&1) > 0 && add() 
  A <<= 1 
  B >>= 1

  _ = (B&1) > 0 && add() 
  A <<= 1 
  B >>= 1

  _ = (B&1) > 0 && add() 
  A <<= 1 
  B >>= 1

  _ = (B&1) > 0 && add() 
  A <<= 1 
  B >>= 1

  _ = (B&1) > 0 && add() 
  A <<= 1 
  B >>= 1

  _ = (B&1) > 0 && add() 
  A <<= 1 
  B >>= 1

  _ = (B&1) > 0 && add() 
  A <<= 1 
  B >>= 1

  return res >> 1
}

你可能感兴趣的:(Algorithm,算法,leetcode,linux)