剑指 offer set 26 不用加减乘除做加法
总结
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 不用加减乘除做加法相关推荐
- 【LeetCode 剑指 Offer 65】不用加减乘除做加法
不用加减乘除做加法 https://leetcode.cn/problems/bu-yong-jia-jian-cheng-chu-zuo-jia-fa-lcof/ 题目描述 写一个函数,求两个整数之 ...
- 【剑指offer】_14 不用加减乘除做加法
题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 解题思路 首先看十进制是如何做的: 5+7=12,三步走 第一步:相加各位的值,不算进位,得到2. 第二步:计 ...
- 剑指Offer_编程题 不用加减乘除做加法
不用加减乘除做加法 时间限制:1秒 空间限制:32768K 热度指数:81997 算法知识视频讲解 题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 首先,十进 ...
- python加减法计算题 代码_关于《剑指offer》中不用加减乘除做加法的Python代码的问题...
题目如下: 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 题目不难,可以采用位操作来实现,利用异或运算来计算不带进位的加法结果,利用与运算计算进位的标志,然后将这两个 ...
- java 加法不用_【Java】 剑指offer(65) 不用加减乘除做加法
本文参考自<剑指offer>一书,代码采用Java语言. 题目 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.×.÷四则运算符号. 思路 对数字做运算,除了四则运算外,只剩下位 ...
- 【LeetCode】剑指 Offer 65. 不用加减乘除做加法
[LeetCode]剑指 Offer 65. 不用加减乘除做加法 文章目录 [LeetCode]剑指 Offer 65. 不用加减乘除做加法 一.位运算 一.位运算 本题考察对位运算的灵活使用,即使用 ...
- 剑指offer——面试题47:不用加减乘除做加法
剑指offer--面试题47:不用加减乘除做加法 Solution1: 学习之 书上的思路就很好啊~ class Solution {public:int Add(int num1, int num2 ...
- 剑指 Offer 65. 不用加减乘除做加法(位运算、递归、迭代)
一.题目 剑指 Offer 65. 不用加减乘除做加法 题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用 "+"."-"."*" ...
- 0位运算/数学简单 剑指 Offer 65. 不用加减乘除做加法
剑指 Offer 65. 不用加减乘除做加法 描述 写一个函数,求两个整数之和,要求在函数体内不得使用 "+"."-"."*"." ...
最新文章
- 线性时间选择问题——分治
- matlab绘制多条折线图
- mysql 存储过程 嵌套if_mysql存储过程if嵌套if的写法
- 关于 /dev/null 与 /dev/zero
- android-verticalseekbar——Android可视化SeekBar类库
- 基于Spring框架的Shiro配置
- cv曲线面积的意义_几何直觉的魅力:sinx曲线下的面积原理是如此的美妙
- React之回调ref中回调执行次数的问题
- 前端协商缓存强缓存如何使用_http协商缓存与强缓存
- 20年未解的MIT密码难题,被自学成才的程序员破解了,比预计早15年
- windows下安装python的包管理工具pip,scikit-learn
- Android8.0 开机启动脚本,Android开机启动shell脚本(Android 8.0测试OK)
- flash 上传文件 java_Flash 二进制传图片到后台Java服务器接收
- Device Mapper Multipath(DM-Multipath)
- Cesium:显示一个3D地球
- ASP.NET Web编程入门-创建一个简单的Web页面
- html表单 新页面打开新页面,js提交表单并打开新页面的方法
- 如何写好一篇科技论文?
- fantastic website
- 【3153万】巴菲特午餐再创天价!细数曾与股神共进午餐的中国大佬丨湾区人工智能...