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

本博文源于笔者正在思考的如何用递归进行计算两数之和。读者一般都会想到用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)
相关推荐
迅猛龙办公室4 小时前
Python函数实现反转一个只有3位数的整数
开发语言·前端·python
“AI国潮设计-小江”4 小时前
《【AIGC实战】Python+SDXL批量生成“英歌舞树莓香草布丁”IP,附保持角色一致性的代码逻辑》
开发语言·人工智能·python·prompt·aigc
闻缺陷则喜何志丹4 小时前
【C++特性及类库】多线程
开发语言·c++·多线程·语言特性·系统库
dtq04244 小时前
C++3 - 分支语句if和string变量
开发语言·c++·学习
jimy14 小时前
c++类成员访问只看静态类型
开发语言·c++
Brilliantwxx4 小时前
【Linux】IO(上)全篇:文件本质、C 接口、系统调用与文件描述符
linux·运维·服务器·c语言
156082072194 小时前
银河麒麟 Qt 可执行文件打包说明
开发语言·驱动开发·qt
SEO_juper4 小时前
手写 llms.txt 验证器:让 AI 更愿意引用你的网站(GEO)
开发语言·人工智能·python·聚类·seo·独立站
CCCCCCCCharlie4 小时前
从0到1:一个字节的磁盘之旅
linux·开发语言·c++
比兔代理4 小时前
纯净IP是什么?从IP信誉、黑名单与ASN角度原理解析
开发语言·php