博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JZ-C-47
阅读量:6708 次
发布时间:2019-06-25

本文共 1307 字,大约阅读时间需要 4 分钟。

剑指offer第四十七题:不能用加减乘除做加法

1 //============================================================================ 2 // Name        : JZ-C-47.cpp 3 // Author      : Laughing_Lz 4 // Version     : 5 // Copyright   : All Right Reserved 6 // Description : 不能用加减乘除做加法 7 //============================================================================ 8  9 #include 
10 #include
11 using namespace std;12 13 int Add(int num1, int num2) {14 int sum, carry;15 do {16 sum = num1 ^ num2; //第一步:异或(各(★)位相加,先不考虑进位)17 carry = (num1 & num2) << 1; //第二步:先与运算再左移得到进位18 19 num1 = sum;20 num2 = carry;21 } while (num2 != 0); //第三步:前两个步骤的结果相加(重复前面两步,直到不产生进位为止)22 23 return num1;24 }25 26 // ====================测试代码====================27 void Test(int num1, int num2, int expected) {28 int result = Add(num1, num2);29 if (result == expected)30 printf("%d + %d is %d. Passed\n", num1, num2, result);31 else32 printf("%d + %d is %d. Failed\n", num1, num2, result);33 }34 35 int main(int argc, char** argv) {36 Test(1, 2, 3);37 Test(111, 899, 1010);38 Test(-1, 2, 1);39 Test(1, -2, -1);40 Test(3, 0, 3);41 Test(0, -4, -4);42 Test(-2, -8, -10);43 }

 

转载于:https://www.cnblogs.com/Laughing-Lz/p/5624807.html

你可能感兴趣的文章
css布局基础总结
查看>>
Koa源码解析
查看>>
webpack系列之一总览
查看>>
乌龙事件之chrome页面部分白屏
查看>>
玩转iOS开发:iOS中的Socket编程(二)
查看>>
如何打造BCH使用的刚性需求?
查看>>
一个小需求引发的思考
查看>>
JSX,了解一下?
查看>>
升级Swift4 0遇到的坑
查看>>
2017 Material design 第四章第二节《单位和尺寸》
查看>>
2017 Material design 第一章第三节《Material特性》
查看>>
iOS开发笔记(三):消息传递与转发机制
查看>>
Metal入门(使用Metal画一个三角形)
查看>>
浅谈 iOS 应用启动过程
查看>>
Clang 之旅—[翻译]添加自定义的 attribute
查看>>
慎用System.nanoTime()
查看>>
2017 移动端 iOS 年终工作总结-纯干货请自备酒水
查看>>
Android小知识-剖析OkHttp中的任务调度器Dispatcher
查看>>
switch的python实现
查看>>
Hybris UI的Route(路由)实现
查看>>