double myPow(double x, int n) { if (n == 0) return 1; else if (n == 1) return x; else if (x == 1) return 1; else if(x == 0 && n < 0) { return -1; } else if(x == -1) { if(n&1) return -1; else return 1; } else if (n < 0) { return (double) (1 / myPow(x, -n)); } else { double temp = myPow(x, n / 2); if(n & 1) return temp * temp * x; else return temp * temp; } }
double pow(double x, int n) { double ans; if(n < 0) return 1.0 / myPow(x, -n); else return myPow(x, n); }
int superPow(int a, vector<int>& b) { int m = b.size(); int res = 1; for(int i = m - 1; i >= 0; i--){ res = res * myPow(a, b[i]) % k; a = myPow(a, 10); } return res; }
long int reverse(long int number){ long int num = 0; int digits = getDigits(number); for(int i = 1; i <= digits; i++){ long int tmp = number % myPow(10, 1); number = number / 10; num += tmp * myPow(10, digits-i); } return num; }
int superPow(int a, vector<int>& b) { a = a % 1337; long long int ans = 1; while( b.size() ){ ans = ans * myPow(a, b.back()) % 1337; b.pop_back(); a = myPow( a, 10 ); } return ans; }
long long Prob101::u_n(int n) { long long answer = 0; for (int i = 0; i <= 10; i++) { answer += myPow(-1, i)*myPow(n, i); } return answer; }
double myPow(double x, int n) { if (n == 0) return 1; if (n == 1) return x; if (n == -1) return 1/x; return myPow(x, n%2) * myPow(x*x, n/2); }
//AC - 0ms; //divide and conquer; double myPow0(double x, int n) { if(n == 0) return 1; long n0 = n; if(n < 0) { x = 1/x; n0 *= -1; } return n0%2 == 0? myPow(x*x, n0/2) : myPow(x*x, n0/2) * x; }
double myPow(double x, int n) { if(n == 0) return 1; else if(n == 1) return x; else if(n == -1) return 1 / x; if(n % 2 == 0){ double r = myPow(x, n / 2); return r * r; } else { double r = myPow(x, n / 2); return n > 0 ? (r * r * x) : (r * r / x); } }
double myPow(double x, int n) { double r, t; if (n == 0) return 1.0; else if (n < 0) r = 1.0 / myPow(x, -(n + 1)) / x; else { t = myPow(x, n / 2); r = t * t; if (n % 2 != 0) r *= x; } return r; }
/** * @param x the base number * @param n the power number * @return the result */ double myPow(double x, int n) { if(n == 0) return 1.0; else if (n < 0) return 1/myPow(x, -n); double temp = myPow(x, n/2); double ans = temp*temp; if( n%2 == 1) { ans *= x; } return ans; }
//4ms double myPow(double x, int n) { if((x == 1)||(n == 0)) return 1; if(x == -1) return n%2==1?-1:1; if(x == 0) return 0; if(n > 0){ if(n%2 == 0){ double v =myPow(x, n/2); return v*v; } else return myPow(x, n-1)*x; }else return 1.0/myPow(x, -n); }
static double do_pow(double x, int n) { if (n == 0) return(1.0); if (n == 1) return(x); if (n % 2) return(x * myPow(x, n - 1)); /* n is even */ double t = myPow(x, n / 2); return(t * t); }
double myPow(double x, int n) { if(n == 0) return 1; if(n < 0){ if(n == INT_MIN){ x = 1 / x; return myPow(x * x, INT_MAX / 2 + 1); } n = -n; x = 1 / x; } return (n % 2 == 0) ? myPow(x * x, n / 2) : x * myPow(x * x, n / 2); }
double myPow(double x, int n) { if((n<=INT_MIN || n>=INT_MAX) && (x>1 || x<-1)) return 0; //pow(x, INT_MIN) == 0; if(x==1)return 1; if(x==-1)return n%2==0?1:-1; if(n==0)return 1; if(n==1)return x; if(n<0) return myPow(1/x, -n); double y = myPow(x, n/2); if(n%2==0) return y * y; else return y * y * x; }
double myPow (double x, int n){ if (n==0) { return 1; } int original = n; n = abs(n); if (n % 2) { double pow_re = myPow(x, n/2); return (original > 0) ? pow_re * pow_re * x : 1/(pow_re * pow_re * x); } else { double pow_re = myPow(x, n/2); return (original > 0) ? pow_re * pow_re : 1/(pow_re * pow_re); } }
void Tank::removeCompleteLine(int& rowsLeft, int& score){ int lineStreak = 0; for (int row = m_height - 2; row >= 0; row--){ bool isCompleted = true; for (int col = 1; col < m_width - 1; col++){ if (m_tankData[row][col] == 0){ isCompleted = false; break; } } if (isCompleted){ removeLine(row); // This is crucial. if you vaporize one row, you need to update row again. row++; lineStreak++; } } if (lineStreak > 0){ score += myPow(2, lineStreak - 1) * 100; rowsLeft -= lineStreak; if (rowsLeft < 0) rowsLeft = 0; } }
int main() { int n; double x; scanf("%lf %d", &x, &n); printf("%lf", myPow(x, n)); return 0; }
double myPow(double x, int n) { if(n == 0) return 1; if(n < 0) { if(n == INT_MIN) return myPow(1/x, INT_MAX)*x; else return myPow(1/x, -n); } if((n&1) == 0) { return myPow(x*x,n/2); } else { return x*myPow(x*x,n/2); } }
/** * @param x the base number * @param n the power number * @return the result */ double myPow(double x, int n) { if(x==0){ return 0; } if(x==1 || n==0){ return 1; } if(n == 1) return x; if(n > 0 ){ int mid = n/2; return myPow(x, mid)*myPow(x, n-mid); }else{ return 1/myPow(x, -n); } }
int main(void){ double x; int n; while(scanf("%lf %d",&x,&n)!=EOF){ printf("%lf\n",myPow(x,n)); } return 0; }
int main(int argc, const char *argv[]) { double base; int power; scanf("%lf%d", &base, &power); printf("%lf", myPow(base, power)); return 0; }
double power(double x, int n) { if (n == 0) return 1; double result = myPow(x, n/2); if (n % 2 == 0) return result * result; else return result * result * x; }
double myPow(double x,int n) { if(n == 0) return 1; if(n == 1) return x; double tmp = myPow(x,n/2); if(n&1) return tmp*tmp*x; return tmp*tmp; }
/** * @param x the base number * @param n the power number * @return the result */ double myPow(double x, int n) { // Write your code here if (n < 0) return 1 / myPow(x, -n); if (n == 0) return 1; if (n == 1) return x; if (!(n % 2)) { double temp = myPow(x, n / 2); return temp * temp; } else { double temp = myPow(x, n / 2); return temp * temp * x; } }
double myPow(double x, int n) { if (n == 0) return 1; if (n == 1) return x; if (n == -1) return 1 / x; double h = myPow(x, n / 2); if (n % 2 == 1) return h * h * x; else if (n % 2 == -1) return h * h / x; else return h * h; }
double myPow(double x, int n) { double ans; if (n < 0) { if (n == INT_MIN) { return 1.0 / (myPow(x, INT_MAX) * x); } else { return 1.0 / myPow(x, -n); } } if (n == 0) ans = 1.0; ans = 1.0; for (; n > 0; x *= x, n >>= 1) { if (n&1 > 0) { ans *= x; } } return ans; }
double myPow(double x, int n) { // if(n < 0) return 1. / myPow(x, -n); // Runtime Error?? // if n = – 2147483648, -n is still – 2147483648 if(n == 0) return 1.0; double half = myPow(x, n / 2); if(n % 2 == 0) return half * half; // % not / else if(n > 0) return half * half * x; else return half * half / x; }
double myPow(double x, int n) { if ( n == 0 ) return 1; if ( n < 0 ) { n = -n; x = 1/x; } double res = myPow(x,n/2); return (n&1)? x*res*res:res*res; }
int Tank::myPow(int base, int exp){ if (exp == 0) return 1; else if (exp == 1) return base; else return base * myPow(base, exp - 1); }