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

本博文源于笔者正在思考的如何用递归进行计算两数之和。读者一般都会想到用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)
相关推荐
郝亚军10 分钟前
FE1.1S-BQFN24BT可以指定IP端口吗?
开发语言·php
阿里嘎多学长13 分钟前
2026-08-04 GitHub 热点项目精选
开发语言·程序员·github·代码托管
晴天1627 分钟前
Rust 快速入门 (从 JavaScript 开发者视角)-Day09
开发语言·javascript·rust
步行cgn1 小时前
carList.forEach(System.out::println)
java·开发语言·mybatis
进击的程序猿~1 小时前
Go 内存分配与垃圾回收源码深度学习手册
开发语言·后端·golang
geovindu1 小时前
go:Bit Operation Algorithm
开发语言·后端·算法·golang·位运算法
choumin2 小时前
C程序能调用extern “C“声明的带默认参数的C++函数吗?
c语言·c++·extern c·默认参数
LONGZETECH2 小时前
传统实训 vs 仿真实训:从技术架构拆解新能源汽车教学的范式之变
c语言·3d·unity·架构·汽车
并不喜欢吃鱼2 小时前
从零开始 C++------ 十六.深度拆解 C++ 智能指针:unique_ptr/shared_ptr/weak_ptr 底层模拟、内存泄漏根治
开发语言·c++
CTuMei2 小时前
Free-Claude-Code 实战效果与能力边界全景展示
开发语言