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!")
 |