赞
踩
必备知识点
两个数的和为不考虑进位情况下两个数的和加上进位
两个数异或结果为不考虑进制的情况下给两个数求和,如5^7=2
两个数相与(&)再左移一位结果为两个数相加后的进位,如(5&7)<< 1 =10
将上述两个值相加则为两个数相加结果为两个数求和,如5^7 + (5&7)<<1 = 2+10 = 12,相当于输入前两个的结果来递归调用自己
- int addWithoutArithmetic(int num1, int num2)
- {
- if (num2 == 0)
- {
- return num1;
- }
- int a = num1^num2;
- int b = (num1 & num2) << 1;
- return addWithoutArithmetic(a, b);
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。