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

本博文源于笔者正在思考的如何用递归进行计算两数之和。读者一般都会想到用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)
相关推荐
REDcker几秒前
Android 15 16KB 内存页适配详解
android·开发语言·python
2zcode几秒前
基于MATLAB同态滤波的医学图像增强系统设计与实现
开发语言·计算机视觉·matlab
脏脏a几秒前
飞牛NAS部署EasyNVR实操:摄像头RTSP接入、本地录像与公网回看
开发语言·php
FREEDOM_X6 分钟前
Linux 进程间通讯(IPC)——总结
linux·c语言·前端·嵌入式硬件·struts
杰佛史彦明114 分钟前
PDF 表格转 CSV:Python 实现方法与代码解析
开发语言·python·pdf
gugucoding20 分钟前
39. 【C语言】经典 C 项目实战:迷你 HTTP 服务器
c语言·开发语言·http
什巳28 分钟前
JAVA练习277- 找到字符串中所有字母异位
java·开发语言·算法·leetcode
头茬韭菜39 分钟前
3.6 依赖注入 — 四个依赖的精准边界
开发语言·ai·ecmascript
江华森1 小时前
Python神经网络编程(四):Python从零搭建神经网络
开发语言·python·神经网络
Helen_cai2 小时前
OpenHarmony 完整项目工程整合规范 + 模块化分层架构(API23+ 标准企业级结构)
开发语言·华为·php·harmonyos