【已解决】如何用递归实现位运算计算两数之和

本博文源于笔者正在思考的如何用递归进行计算两数之和。读者一般都会想到用while循环进行操作,位运算两数之和的思想就犹如辗转相除法。文章并附加了对这个方法的流程演示

问题来源

想要用递归实现两数之和。

代码实现

cpp 复制代码
#include<stdio.h>
int add(int num1, int num2) {

	if (num2 == 0)
		return num1;
	else {
		return add(num2^num1, (num2&num1)<<1);
	}
}
int main() {
	printf("%d", add(3, 5));
	getchar();
}

实现结果

以3+5为例演示代码

代码进行,add(3,5)传入进去

  • 第一次计算add(6,2)
  • 第二次计算add(4,4)
  • 第三次计算add(0,8)
  • 第四次计算add(8,0)
相关推荐
qq_479875435 小时前
C++ 鸭子类型” (Duck Typing)
开发语言·c++
勇气要爆发5 小时前
【第一阶段—基础准备】第五章:Python模块和包管理(基础篇)—变形金刚的装备库
开发语言·python
lkbhua莱克瓦245 小时前
Java进阶——IO流
java·开发语言·笔记·学习方法·io流
阿杰同学5 小时前
Java中55种锁,高级面试题,最新面试题
java·开发语言
清晓粼溪5 小时前
SpringCloud01-基础概念
java·开发语言·spring cloud
曹牧6 小时前
在C#中,string和String
开发语言·c#
小白学大数据6 小时前
基于文本检测的 Python 爬虫弹窗图片定位与拖动实现
开发语言·爬虫·python
小白|6 小时前
【OpenHarmony × Flutter】混合开发性能攻坚:如何将内存占用降低 40%?Flutter 引擎复用 + ArkTS 资源回收实战指南
开发语言·javascript·flutter
tuokuac6 小时前
java中的浮点数基本操作
java·开发语言
佳航张7 小时前
C语言经典100题---例003--- 完全平方数
c语言