git-subtree-dir: users/wpcarro git-subtree-mainline:464bbcb15cgit-subtree-split:24f5a642afChange-Id: I6105b3762b79126b3488359c95978cadb3efa789
		
			
				
	
	
		
			22 lines
		
	
	
	
		
			561 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
	
		
			561 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| import random
 | |
| 
 | |
| def add(a, b):
 | |
|     """
 | |
|     Return the sum of `a` and `b`.
 | |
|     """
 | |
|     if b == 0:
 | |
|         return a
 | |
|     sum = a ^ b
 | |
|     carry = (a & b) << 1
 | |
|     return add(sum, carry)
 | |
| 
 | |
| ################################################################################
 | |
| # Tests
 | |
| ################################################################################
 | |
| 
 | |
| for _ in range(10):
 | |
|     x, y = random.randint(0, 100), random.randint(0, 100)
 | |
|     print("{} + {} = {} == {}".format(x, y, x + y, add(x, y)))
 | |
|     assert add(x, y) == x + y
 | |
|     print("Pass!")
 | |
| print("Success!")
 |