zoukankan      html  css  js  c++  java
  • LeetCode: 371 Sum of Two Integers(easy)

    题目:

    Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -.

    Example:
    Given a = 1 and b = 2, return 3.

    代码:

     使用移位来计算,用异或求不带进位的和,用与并左移1位来算进位,然后将两者相加。

    1 class Solution {
    2 public:
    3     int getSum(int a, int b) {
    4         return b == 0 ? a : getSum(a^b, (a&b)<<1);
    5     }
    6 };

    什么样的数据可以直接移位? char、 short、 int、 long、 unsigned char、 unsigned short、 unsigned int、 unsigned long

    什么样的数据不能直接移位? double、 float、 bool、 long double

  • 相关阅读:
    bzoj2959
    学习笔记::lct
    bzoj3203
    bzoj1319
    bzoj3625
    bzoj3992
    bzoj1565
    bzoj3513
    平常练习动归(1.胖男孩)———最长公共子序列
    2016 noip 复赛 day2
  • 原文地址:https://www.cnblogs.com/llxblogs/p/7449418.html
Copyright © 2011-2022 走看看