使用if条件来限制并在某种状态下递归调用自己。
(2)条件近似
通过一步一步的递归调用,应该接近if判断条件的方向。
停止递归(找到递归点)
(3)由大到小
每次递归都需要将一个大问题划分为子问题。
定义函数的具体思路
首先我们定义一个函数,我们调用一下,以免和库函数中的pow冲突(是不是可以弄个真孙悟空或者假孙悟空?)
至于参数,n代表底数,比如2^3,2的立方,n为2,k为3。结果是8
有条件限制
递归是有条件限制的(不能无限制递归,迟早要还钱的)
由于它是 n 的 k 乘法,因此每次递归后我们都会 k-1。
这样你就知道递归部分怎么写了吧~
条件近似
每次k-1是近似条件
每次循环最终结束时,都会卡在if的极限处~
最后检查
然而,我们仍然缺少一句话。 否则的话,之前的努力可能都白费了! ! ! !
函数如何执行递归? ?我们看图
完整代码
#include
//n^k
int my_pow(int n,int k)
{
if(k>0)
{
return my_pow(n,k-1)*n;
}
return 1;
}
int main(void)
{
int ret = my_pow(4,4);
printf("%d\n",ret);
return 0;
}
附:
最近状态不错,要继续保持,继续写博客~
还有读书~~
俗话说:三天不学习,智商比猪还低。