Recursion 我对尾部递归感到困惑的两件事

Recursion 我对尾部递归感到困惑的两件事,recursion,Recursion,我对尾部递归有如下几点困惑: 一些递归函数是void函数,例如, //在控制台上打印给定数量的星星。 //假设n>=1。 无效打印开始{ 如果n==1{ //n==1,基本情况 cout 1,递归情况 cout=0 int powerint base,int exp{ 如果exp

我对尾部递归有如下几点困惑:

一些递归函数是void函数,例如, //在控制台上打印给定数量的星星。 //假设n>=1。 无效打印开始{ 如果n==1{ //n==1,基本情况 cout 1,递归情况 cout=0 int powerint base,int exp{ 如果exp<0{ 抛出非法负指数; }如果exp==0,则为else{ //基本情况;0次方的任何数字都是1 返回1; }如果exp%2==0,则为else{ //递归情况1:x^y=x^2^y/2 返回powerbase*base,exp/2; }否则{ //递归情况2:x^y=x*x^y-1 返回基*powerbase,exp-1; } }
这里我们有一个逻辑结尾作为尾部递归,另一个不是尾部递归。你认为这个函数是不是尾部递归?为什么?

可能的重复请不要插入代码的硬拷贝,而是引用文本,在文本前面移动四个空格。你只是问这个函数是否可以命名为尾部递归?我不知道hink有一个脚本定义,如果func调用tail递归的所有端点或仅某些端点都必须是tail。。。