[Holo_wo]-如何阅读递归代码,对递归代码结构分析

因为做算法题的时候经常碰到递归的方法,而每次理解递归代码的层次结构都很费脑筋,所以我尝试着总结分析了一下递归代码的结构,如果有误还望大家指明。

类型 函数名(参数){
   
 跳出递归的条件
 
 相关参数设置

 开始递归调用函数

 得到下一层递归的结果用于计算.. 这一部分看具体情况可有可无
}


//看一段代码,用递归的方法求一个数的n次方

/*
函数功能:求x的n次方
函数参数:base是底数,exponent是指数
*/
double Power(double base, unsigned int exponent){
 if(exponent==0)
    return 1;
 if(exponent==1)
    return base;
double result =Power(base,exponent>>1);
result *=result;
if(exponent & 0x1 ==1)
    result *=base;
return result;
}

由于不太好用文字描述,所以我用笔画个图分析给大家看吧。

递归到最后一层时,还会再进入一次函数,通过这次进入函数来停止递归,开始往上层返回数据。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值