递归这个问题之前已经讨论过了,有利有弊,关键还是怎么使用,要是使用的好的不仅清晰,而且,事半功倍。那么现在我们就来说一下眼前这个问题吧!
要想实现一个数的任意次方,那么就得有两个数,一个作为底数,一个作为指数,然后就是分解这个问题了。一个数 x 的的 n 次方可以当成 n 个 x 的乘积,这样我们就知道这个题的做法了。最后就是分析怎样才能递归实现。
我们都知道,要想递归,首先要满足递归的条件,就是,问题的规模经过递归越来越少,就拿这个题来说吧!如果是2^5,就是5个2相乘,要想做这个,首先得四个相乘,然后是三个,直到递归出口处,结束,开始运算。
下面就来实现这个问题吧:
//递归实现一个数的任意指数次方
int index(int num , int ind , int mul)
{
int i = 0;
if (i<ind)
{
mul = mul*num;
return index(num, ind - 1, mul);
}
return mul;
}