不用加减乘除做加法
2016-06-14 11:24
274 查看
//写一个函数,求两个整数之和,要求在函数体内不得使用 +,-,*,/ 四则运算符号。
#include "iostream"
using namespace std;
//分三步:1.不算进位相加sum,2.仅算进位carry。3.sum与carry相加,这里循环了,如果carry为0,over。
int add(int a, int b)
{
int sum_without_carry = 0;
int carry_only = 0;
while (b != 0)
{
sum_without_carry = a^b;
carry_only = (a&b) << 1;
a = sum_without_carry;
b = carry_only;
}
return a;
}
int main()
{
cout << add(-1, -3);
return 0;
}
思维很棒!
#include "iostream"
using namespace std;
//分三步:1.不算进位相加sum,2.仅算进位carry。3.sum与carry相加,这里循环了,如果carry为0,over。
int add(int a, int b)
{
int sum_without_carry = 0;
int carry_only = 0;
while (b != 0)
{
sum_without_carry = a^b;
carry_only = (a&b) << 1;
a = sum_without_carry;
b = carry_only;
}
return a;
}
int main()
{
cout << add(-1, -3);
return 0;
}
思维很棒!
相关文章推荐
- 去除系统tabBar上面的线
- 检测zookeeper和kafka是否正常
- Safari获取UDID需要安装.mobileconfig文件,
- jqGrid中实现radiobutton的两种做法
- 升级您的ERP系统
- Spring源码深度解析(一)Spring的整体架构
- 腾讯视频怎么转成MP4格式
- linux网络命令总结
- leetCode . Binary Tree Inorder/ Preorder/ Post Traversal iteratively
- iOS Bluetooth 打印小票
- 采样、过采样和压缩感知
- mxnet环境搭建随记
- 利用xslt将xml转为word
- python将图像转化为矩阵
- 排序算法java实现
- DataFrame和SparkSql取值误区
- ADT、SDK、JDK、
- Ruby 冒泡排序
- RatingBar的自定义效果
- Android 6.0 双向通话自动录音