剑指Offer——不用加减乘除做加法
2024-08-26 21:09:20
题目描述:
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
分析:
"^"是不带进位的加法。
"&"可以得到所有进位位组成的数。
我们只需要将不进位加后的数与所有进位位组成的数右移一位的结果相加就可以得到和。
不过我们在上面一步的加法过程中,我们也只能用"^"不进位的加法。
所以我们要循环之前的步骤直到不出现进位的情况,这样我们的"^"就和普通加法一样了。
代码:
class Solution {
public:
int Add(int num1, int num2) {
int a = num1 ^ num2; // 不进位加
int b = (num1 & num2) << ; // 要进位位组成的数右移一位
while(b) { // 不进位加后的数与要进位位组成的数右移一位的结果相加
int c = a ^ b;
b = (a & b) << ;
a = c;
}
return a;
}
};
最新文章
- Python-实现对表插入百万条数据
- CUBRID学习笔记 2 安装教程
- splunk rest api search
- homework-附加题:第12章基本数据类型阅读总结
- 解读Unity中的CG编写Shader系列4——unity中的圆角矩形shader
- webresource.axd文件的配置及使用
- JS禁止/启用滚动条
- merge 语句的语法
- Linux进程实时IO监控iotop命令详解
- RequireJS基础知识
- ldap配置系列二:jenkins集成ldap
- Asp.Net Output.Write()
- percona-5.7二进制多实例安装
- ant___令牌过滤器
- ATM取款机数据库设计
- mysql中的几种join 及 full join问题
- poj3080 Blue Jeans【KMP】【暴力】
- 从Trie树(字典树)谈到后缀树
- golang项目结构
- Maven:版本管理 【SNAPSHOT】【Release】【maven-release-plugin】【nexus】
热门文章
- (转载)C++STL中vector容器的用法
- mysql数据库批量操作
- scala 测试类
- CR, LF, CR/LF区别与关系
- asp.net 正在加载/处理(兼容IE Chrome)
- C#读取EXECL关键代码
- 【noip模拟题】最大公约数(数论)
- 【BZOJ】1676: [Usaco2005 Feb]Feed Accounting 饲料计算(差分)
- 3% of users browse with IE9 and 14% of users have a disability. Why do we only cater for the former?
- Linux kernel parameter command line设置