Advertisement
shamiul93

Untitled

Nov 10th, 2019
352
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.27 KB | None | 0 0
  1. /***** this solution works just fine. i will implement a version without LONG variable **********/
  2.  
  3. // class Solution {
  4. // public:
  5. // double recurse(double x, long n) {
  6. // if(n == 0) return 1;
  7. // if(n == 1) return x;
  8. // double ret = 1;
  9. // if(n % 2 == 0){
  10. // ret = recurse(x , n/2);
  11. // ret = ret * ret ;
  12. // } else {
  13. // ret = x * recurse(x , n-1);
  14. // }
  15. // return ret;
  16. // }
  17.  
  18. // double myPow(double x, int n) {
  19. // long N = n;
  20. // int sign = (n < 0)? -1 : +1;
  21. // double ret = recurse(x,abs(N)) ;
  22. // if(sign == -1) return 1.0/ret;
  23. // else return ret;
  24. // }
  25. // };
  26.  
  27.  
  28. /******** without long variable ************/
  29.  
  30.  
  31. class Solution {
  32. public:
  33.  
  34. double myPow(double x, int n) {
  35. if(n == 0) return 1;
  36. if(n == 1) return x;
  37. if(n == -1) return 1/x;
  38. double ret =myPow(x , n/2);
  39. if(n % 2 == 0){
  40. ret = ret * ret;
  41. } else {
  42. if(n < 0){
  43. ret = (1/x) * ret * ret;
  44. }
  45. else {
  46. ret = x * ret * ret;
  47. }
  48.  
  49. }
  50. return ret;
  51. }
  52. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement