이 두 기능을 만났습니다. 다른 기능보다 효과적입니까? 첫 번째 기능에서 pow1(x^2, n/2) * x
을 return x*pow1(x^2, n/2)
으로 변경하면 어떻게됩니까?효율성과 관련하여이 두 기능간에 차이가 있습니까?
int pow1(int x, int n){
if(n==0)
return 1; else
if(n==1)
return x; else
if("n is odd")
return pow1(x^2, n/2) * x ; else // change to return x*pow1(x^2, n/2) ?
if("n is even")
return pow1(x^2, n/2);
}
int pow2(int x, int n){
p=1;
for(int i=1;i<=n;i++){
p = p*x;
}
return p;
}
대신 http://programmers.stackexchange.com/tags/algorithms에서 게시하고 싶을 수도 있습니다. – Evert
왜 그들을 테스트하고 큰'n '시간을 측정하지 않습니까? – bosnjak