python
def db(dec):result =''
if dec == 0:
return 1
else:
return db(dec // 2)
result + str(dec%2)
return result
print(db(7))
为什么结果是 1 ? result初始是空字符串,dec是7所以执行else下内容,最终返回值是result=result (初始空字符串)+str(7%2),就是1 这个不是递归语句,单次执行完就输出结果了,db(7)处理,走的是else语句,里面的第一行语句只是return,第二行才是result的处理,所以空串加7%2就是1了
页:
[1]