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

本博文源于笔者正在思考的如何用递归进行计算两数之和。读者一般都会想到用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)
相关推荐
2501_947575804 小时前
计算机毕业设计之jsp开山车行二手车交易系统
java·开发语言·hadoop·python·信息可视化·django·课程设计
骑士雄师4 小时前
java面试题 4:鉴权
java·开发语言
时间的拾荒人5 小时前
C语言字符函数与字符串函数完全指南
c语言·开发语言
2501_948106916 小时前
计算机毕业设计之基于jsp教科研信息共享系统
java·开发语言·信息可视化·spark·课程设计
持力行6 小时前
C/C++ 中的 char*:它标识数组吗?为什么能用下标访问?
c语言·c++
取经蜗牛6 小时前
Python 第一阶段完全指南:从零到第一个实用工具
开发语言·python
dog2506 小时前
从重尾到截断流量模型的演进
开发语言·php
qq_401700417 小时前
Qt QSS 完全入门写出漂亮界面以及解决样式不生效问题
开发语言·qt
我是一颗柠檬8 小时前
【Java项目技术亮点】覆盖索引与索引下推优化
android·java·开发语言
2601_962440848 小时前
计算机毕业设计之健身房管理系统的设计与实现
java·开发语言·课程设计·旅游·宠物