Write a function that add two numbers A and B.
Are a and b both 32-bit
integers?
Can I use bit operation?
Given a=1
and b=2
return 3
.
Of course you can just return a + b to get accepted. But Can you challenge not do it like that?(You should not use +
or any arithmetic operators.)
Using a recursion method to solve this problem!
1 /** 2 * @param a: An integer 3 * @param b: An integer 4 * @return: The sum of a and b 5 */ 6 int aplusb(int a, int b) { 7 // Recursion process 8 if ( (a & b) == 0 ){ 9 return a ^ b; 10 } else { 11 return aplusb( (a^b), ((a&b)<<1) ); 12 } 13 }
It‘s not the only way to get the right answer. Can you try the other way like the loop structure?
原文:https://www.cnblogs.com/jjlovezz/p/9897625.html