程序员面试金典——7.4加法运算替代
参考网址:https://www.nowcoder.com/profile/8858041/codeBookDetail?submissionId=15062497
一个知识点:
正整数按位取反等于其负数减一
负整数按位取反等于其正数减一
class AddSubstitution {
public:
int calc(int a, int b, int type) {
// write code here
int res = 0;
if(type == 1) {
int tmp = 0;
for(int i = 0; i < b; i++){
tmp += a;
}
res = tmp;
}
else if(type == 0 ) {
int tmp = a;
int count = 0;
while(tmp > 0&& tmp >= b) {
tmp = tmp + (~b) + 1;
count++;
}
res = count;
}
else {
res = a + (~b) + 1;
}
return res;
}
};
本文介绍了一种不使用加法运算符实现加法的方法。通过循环累加和按位取反加1的方式实现了两个整数的加法及减法操作。代码中提供了具体的实现细节,包括如何处理正负数的情况。

被折叠的 条评论
为什么被折叠?



