不用加减乘除完成两数相加
看了剑指offer一书的一个题目,然后自己写了的代码,有迭代和递归两种方式,代码如下:
1 #include <stdio.h> 2 3 int add(int a, int b) //迭代 4 { 5 int c; 6 7 c = (a&b)<<1; //保存进位 8 a ^= b; //相加,不考虑进位,类似与半加器原理 9 10 while(c) //两数相加直到进位为0 11 { 12 b = c; 13 c = (a&b)<<1; 14 a ^= b; 15 } 16 17 return a; 18 } 19 20 int recursion_add(int a, int b) 21 { 22 int c; 23 24 if (b == 0) 25 return a; 26 27 c = (a&b)<<1; 28 a ^= b; 29 30 return recursion_add(a, c); 31 } 32 33 int main() 34 { 35 int a, b; 36 while(scanf("%d%d", &a, &b) != EOF) 37 { 38 printf("%d\n", add(a, b)); 39 printf("%d\n", recursion_add(a, b)); 40 } 41 return 0; 42 }
转载于:https://www.cnblogs.com/AC-LG/archive/2012/10/12/2722003.html
不用加减乘除完成两数相加相关推荐
- 不用加减乘除符号计算两数之和
1. 转换成二进制进行加法 int bit_add(int a ,int b){int carry = a & b;int no_carry_sum = a ^ b;if (carry != ...
- c语言两数相加vs,两数相加(C语言)
两数相加 给出两个 非空 的链表用来表示两个非负的整数. 其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来 ...
- 不用加号实现两整数相加
1.减法实现 int addWithoutPlusSign(int a, int b) {return a - (-b); } 2.异或实现 对于二进制的加法运算,若不考虑进位,则1+1=0,1+0= ...
- Leetcode刷题笔记之445. 两数相加Ⅱ
原题 给你两个 非空 链表来代表两个非负整数.数字最高位位于链表开始位置.它们的每个节点只存储一位数字.将这两数相加会返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头. 进阶 ...
- leetCode刷题 2. 两数相加
原题链接: leetcode-cn.com/problems/ad- 题目描述 给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字.将两数相加返回一个新的链表. 你 ...
- 【每日一算法】两数相加
微信改版,加星标不迷路! 每日一算法-两数相加 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两 ...
- 【前端来刷LeetCode】两数之和与两数相加
大部分玩前端的小伙伴,在算法上都相对要薄弱些,毕竟调样式.调兼容就够掉头发的了,哪还有多余的头发再去折腾. 确实在前端中需要使用到算法的地方是比较少,但若要往高级方向发展,算法的基本功就非常重要啦.对 ...
- [Swift]LeetCode2. 两数相加 | Add Two Numbers
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
- LeetCode 2 两数相加
给定两个非空链表来代表两个非负数,位数按照逆序方式存储,它们的每个节点只存储单个数字.将这两数相加会返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头. 示例: 输入:(2 - ...
最新文章
- 关联查询的resultMap写法示例
- mediawiki java_使用MediaWiki 1.16.0实现添加媒体向导
- [转]Oracle update用例
- 要做互联星空的SP接口,一点头绪都没有
- 51nod1297 管理二叉树
- 开挂程序员 Pat Gelsinger 如何重整英特尔?
- 博思得标签打印机驱动_惠普LaserJet 5200n驱动-惠普HP LaserJet 5200n打印机驱动下载 v61.074.561.43官方版...
- Java IO流常用操作方法总结
- 高校成绩管理数据库系统
- ddr3配置 dsp6678_DSP6678DDR配制方法
- 运营必备 - PV、UV、IP 分别是什么意思?
- 客户关系管理之会员管理
- 回扣应该怎么给——某人的经验
- Python计算机视觉-仿射扭曲简单实例
- 怎么解决电脑USB接口不识别U盘
- 获得root权限的命令 su和sudo命令
- BUCT数据结构——图(拓扑排序、关键路径)
- 学习OpenCV3 面阵相机标定方法
- 哪些软装装饰让你认为是家里装修的点睛之笔?
- 条码打印软件及条码打印机中如何设置纸张大小