标签:递归 mic code src 迭代 ret pre bsp 技术
递归:
class Solution { public: double myPow(double x, int n) { if(n==0) return 1; if(n<0) return 1/myPow(x,-n); if(n&1==0) return myPow(x*x,n/2); return x*myPow(x,n-1); } };
迭代:
class Solution { public: double myPow(double x, int n) { double res=1.0; int p=n; while(p){ if(p&1==1) res*=x; p/=2;if(p==0) break; x*=x; } return n>0?res:1/res; } };
这道题目应该使用迭代方法,因为使用递归方法会出现stack overflow(并不是说递归的代码是错误的,事实上递归的代码大多数样例可以正确运行)
标签:递归 mic code src 迭代 ret pre bsp 技术
原文地址:https://www.cnblogs.com/joelwang/p/10664891.html