'''
  要求
    1、要有明确的结束条件 (递归最多999次)
    2、每次进入更深一层递归时，问题规模相比上次递归都应有所减少
    3、递归效率不高，递归层次过多会导致栈溢出（在计算机中，函数调用是通过栈（stack）这个数据结构实现的，每当进入一个函数调用，栈就会加一层栈帧，每当函数返回，栈会漏一层栈桢。由于栈的大小不是无限的，所以递归调用的次数多，会导致栈溢出）
'''


def calc(n):
  print(n)
  return calc(n + 1)


# calc(0)

def calcs(n):
  print(n)
  if int(n / 2) > 0:
    return calcs(int(n / 2))


calcs(100)
