Computational recursive function understanding

def cal(n): # 2 
    print (n) # 3 10 5 2 1 
    if int(n/2)==0: # 10/2 5/2 2/2 1/2=0 
        return n # 1 2 5 10 
    res=cal(int(n/2)) # cal5 cal2 cal1.....res=cal1=1,res=cal2,res=cal5, 
    print (res) # 111 
    return res #It is infinite because it always returns 1 Return 
cal(10)   # 1

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324886213&siteId=291194637