int numN(int a,int n)
{
if(n == 1)
return a;
if(n%2 == 0)
{
return numN(a,n/2) * numN(a,n/2);
}
else
{
return numN(a,(n-1)/2) * numN(a,(n-1)/2) * a;
}
}
如上,求a的n次方,把这个大问题转化成分别求a的n/2次方然后在相乘,然后递归下去。要处理的就是n的奇偶判断。
递归结束的条件就是当n等于1的时候,return a的值然后开始合并所有子问题的解最后得出答案。