有必要,如果不写return r,就会导致你第五行的r值计算了半天却并没有返回值给到你的倒数第二行的r
有必要。该函数定义了有返回值,所以必须要return。如果函数第一次执行条件不满足,就会走else分支,如果else分支不写return语句,则该函数无法保证有返回值,递归后的return x无法保证第一次执行的else语句有返回,所以else分支中需要有return语句。至于是return r还是return函数调用,那只是写法问题。