总结

1. Leetcode 上有一道题, 是不用乘除做乘法, 那道题算是背包问题的变形

2. 不用加减乘除, 还可以用移位操作

3. 将数字转成二进制格式, 然后运用二进制亦或, 移位运算解决

  3.1 仅考虑各位相加, 不考虑进位, num1 ^ num2

  3.2 仅考虑进位, (num1 & num2) << 1;

  3.3 将上面两步的和加起来

code

#include <iostream>
using namespace std;int Add(int num1, int num2) {int sum, carry;do {sum = num1 ^ num2;carry = (num1 & num2) << 1;num1 = sum;num2 = carry;} while(num2 != 0);return num1;
}int main() {cout << Add(-11, 12) << endl;return 0;
}

  

转载于:https://www.cnblogs.com/xinsheng/p/3564221.html

剑指 offer set 26 不用加减乘除做加法相关推荐

  1. 【LeetCode 剑指 Offer 65】不用加减乘除做加法

    不用加减乘除做加法 https://leetcode.cn/problems/bu-yong-jia-jian-cheng-chu-zuo-jia-fa-lcof/ 题目描述 写一个函数,求两个整数之 ...

  2. 【剑指offer】_14 不用加减乘除做加法

    题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 解题思路 首先看十进制是如何做的: 5+7=12,三步走 第一步:相加各位的值,不算进位,得到2. 第二步:计 ...

  3. 剑指Offer_编程题 不用加减乘除做加法

    不用加减乘除做加法 时间限制:1秒 空间限制:32768K 热度指数:81997 算法知识视频讲解 题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 首先,十进 ...

  4. python加减法计算题 代码_关于《剑指offer》中不用加减乘除做加法的Python代码的问题...

    题目如下: 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 题目不难,可以采用位操作来实现,利用异或运算来计算不带进位的加法结果,利用与运算计算进位的标志,然后将这两个 ...

  5. java 加法不用_【Java】 剑指offer(65) 不用加减乘除做加法

    本文参考自<剑指offer>一书,代码采用Java语言. 题目 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.×.÷四则运算符号. 思路 对数字做运算,除了四则运算外,只剩下位 ...

  6. 【LeetCode】剑指 Offer 65. 不用加减乘除做加法

    [LeetCode]剑指 Offer 65. 不用加减乘除做加法 文章目录 [LeetCode]剑指 Offer 65. 不用加减乘除做加法 一.位运算 一.位运算 本题考察对位运算的灵活使用,即使用 ...

  7. 剑指offer——面试题47:不用加减乘除做加法

    剑指offer--面试题47:不用加减乘除做加法 Solution1: 学习之 书上的思路就很好啊~ class Solution {public:int Add(int num1, int num2 ...

  8. 剑指 Offer 65. 不用加减乘除做加法(位运算、递归、迭代)

    一.题目 剑指 Offer 65. 不用加减乘除做加法 题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用 "+"."-"."*" ...

  9. 0位运算/数学简单 剑指 Offer 65. 不用加减乘除做加法

    剑指 Offer 65. 不用加减乘除做加法 描述 写一个函数,求两个整数之和,要求在函数体内不得使用 "+"."-"."*"." ...

最新文章

  1. 线性时间选择问题——分治
  2. matlab绘制多条折线图
  3. mysql 存储过程 嵌套if_mysql存储过程if嵌套if的写法
  4. 关于 /dev/null 与 /dev/zero
  5. android-verticalseekbar——Android可视化SeekBar类库
  6. 基于Spring框架的Shiro配置
  7. cv曲线面积的意义_几何直觉的魅力:sinx曲线下的面积原理是如此的美妙
  8. React之回调ref中回调执行次数的问题
  9. 前端协商缓存强缓存如何使用_http协商缓存与强缓存
  10. 20年未解的MIT密码难题,被自学成才的程序员破解了,比预计早15年
  11. windows下安装python的包管理工具pip,scikit-learn
  12. Android8.0 开机启动脚本,Android开机启动shell脚本(Android 8.0测试OK)
  13. flash 上传文件 java_Flash 二进制传图片到后台Java服务器接收
  14. Device Mapper Multipath(DM-Multipath)
  15. Cesium:显示一个3D地球
  16. ASP.NET Web编程入门-创建一个简单的Web页面
  17. html表单 新页面打开新页面,js提交表单并打开新页面的方法
  18. 如何写好一篇科技论文?
  19. fantastic website
  20. 【3153万】巴菲特午餐再创天价!细数曾与股神共进午餐的中国大佬丨湾区人工智能...

热门文章

  1. 著名加密库收集 Encrypt
  2. JQuery实现Ajax跨域访问--Jsonp原理
  3. Unity3D学习笔记(二) 一些常用的空间函数
  4. 避免后台脚本重复启动机制
  5. dedecms插件开发教程
  6. httpClient3.1 笔记
  7. git fetch比较差异
  8. 使用nsenter进入docker namespace
  9. C++ 编译器多态与运行时多态
  10. 基于linux操作系统Mysql的基本操作(一)