首页 > 其他分享 >剑指offer——不用加减乘除做加法

剑指offer——不用加减乘除做加法

时间:2022-11-01 11:06:01浏览次数:46  
标签:num1 num2 offer int sum 异或 加法 进位 加减乘除


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

思路:分三步
1)不考虑进位,只是对两个数进行按位异或(二进制异或就是对应位相加)
2)统计进位
3)将进位添加到上面的不考虑进位时得到的结果上

class Solution {
public:
int Add(int num1, int num2)
{
int sum=0;
int carry=0;
do{
//二进制对应位相加相当于按位异或
sum=num1^num2;//先计算不带进位的值
//二进制计算进位相当于按位与再左移一位
carry=(num1&num2)<<1;//得到进位数
num1=sum;
num2=carry;
}while(num2!=0);
return sum;
}
};


标签:num1,num2,offer,int,sum,异或,加法,进位,加减乘除
From: https://blog.51cto.com/u_15855860/5812304

相关文章

  • 剑指offer——圆圈中最后剩下的数字
    题目描述:每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋......
  • 剑指offer——求1+2+3+...+n的和
    题目描述:求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)思路1:使用构造函数,创建n个类对象,利用构造函数进行求和计算clas......
  • 剑指offer——扑克牌中的顺子
    题目描述:LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如......
  • 剑指Offer-03-数组中重复的数字
    剑指Offer-03数组中重复的数字描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几......
  • 剑指offer一刷:数学
    剑指Offer39.数组中出现次数超过一半的数字难度:简单方法一:哈希表统计法遍历数组nums,用HashMap统计各数字的数量,即可找出众数。此方法时间和空间复杂度均为O(N)。......
  • 剑指offer - 面试题6:重建二叉树
    packageChapter2;/***面试题6:重建二叉树*输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。*假设输入的前序遍历和中序遍历的结果中都不含重复的数字。*......
  • 剑指offer - 面试题10:二进制中1的个数
    packageChapter2;/***面试题10:二进制中1的个数*输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。**内存中的那个数(补码)1的个数*/publicclass_10_b......
  • 剑指offer - 面试题9:斐波那契数列
    packageChapter2;/***面试题9:菲波那切数列*输入一个整数n,请你输出斐波那契数列的第n项。*1、1、2、3、5、8、13、21、34、*//**变形题:*一只青蛙一次可以跳上1级......
  • How quorum queues deliver locally while still offering ordering guarantees
    标题:Howquorumqueuesdeliverlocallywhilestillofferingorderingguarantees原文:https://blog.rabbitmq.com/posts/2020/06/quorum-queues-local-delivery/时间:20......
  • 剑指offer系列题笔记(二维数组的查找)
    在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数......