以下是获得权力的代码(数学)。
- 我很困惑,看起来每个问题都分为一个子问题,每个子问题的大小都是两个,所以它没有形成一棵树,因为通常对于递归“树”,您需要两个递归调用。只有一个递归调用,它就像一个简单的列表。.但它是一个递归函数,Factorial和许多其他递归函数形成树,它们的递归看起来相同。
2.如果它正在形成一棵树,那么它是遍历所有路径还是单路径?
public int GetPower(int k, int n)
{
if (n == 0)
{
return 1;
}
else {
int t = GetPower(k, n / 2);
if((n%2)==0)
{
return t*t;
}
else{
return k*t*t;
}
}
}
请帮助我,我的困惑需要一些解释。
编辑
(2,20) -> (2,10) -> (2,5) -> (2,2) -> (2,1) -> (2,0)
1048576 <- 1024 <- 32 <- 2^4*2 <- 2*2 <- 2 <- 1