Esempio n. 1
0
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;
    }
}
Esempio n. 2
0
 double pow(double x, int n) 
 {
     double ans;
     if(n < 0)
         return 1.0 / myPow(x, -n);
     else
         return myPow(x, n);
 }
Esempio n. 3
0
 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;
 }
Esempio n. 4
0
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;
}
Esempio n. 5
0
 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;
 }
Esempio n. 6
0
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;
}
Esempio n. 7
0
    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);
    }
Esempio n. 8
0
//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;
}
Esempio n. 9
0
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);
    }
}
Esempio n. 10
0
 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;
 }
Esempio n. 11
0
 /**
  * @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;
 }
Esempio n. 12
0
 //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);
 }
Esempio n. 13
0
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);
}
Esempio n. 14
0
 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);
 }
Esempio n. 15
0
File: 050_Pow.c Progetto: ycl11761/-
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;
}
Esempio n. 16
0
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);
    }
}
Esempio n. 17
0
File: Tank.cpp Progetto: heeh/Tetris
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;
  }
}
Esempio n. 18
0
int main() {
    int n;
    double x;
    scanf("%lf %d", &x, &n);
    printf("%lf", myPow(x, n));
    return 0;
}
Esempio n. 19
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);
     }
 }
Esempio n. 20
0
 /**
  * @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);
     }
 }
Esempio n. 21
0
int main(void){
	double x;
	int n;
	while(scanf("%lf %d",&x,&n)!=EOF){
		printf("%lf\n",myPow(x,n));
	}
	return 0;
}
Esempio n. 22
0
int main(int argc, const char *argv[])
{
    double base;
    int power;
    scanf("%lf%d", &base, &power);
    printf("%lf", myPow(base, power));
    return 0;
}
Esempio n. 23
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;
}
Esempio n. 24
0
 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;
 }
Esempio n. 25
0
 /**
  * @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;
     }
 }
Esempio n. 26
0
 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;
 }
Esempio n. 27
0
 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;
 }
Esempio n. 28
0
 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;
 }
Esempio n. 29
0
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;
}
Esempio n. 30
0
File: Tank.cpp Progetto: heeh/Tetris
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);

}