23 lines
		
	
	
	
		
			461 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
	
		
			461 B
		
	
	
	
		
			C
		
	
	
	
	
	
extern	double POWR();
 | 
						|
double TIMESTE(pow, a)
 | 
						|
  double a;
 | 
						|
  int pow;
 | 
						|
  { int p ;
 | 
						|
    register double n, t, r, s;
 | 
						|
    p = pow < 0 ? -pow : pow;
 | 
						|
    n = 5.0;
 | 
						|
    t = 2.0;
 | 
						|
    if ( (p & 1) == 0 ) {r = 1.0; s = 1.0; }
 | 
						|
    else {r = 5.0; s = 2.0; }
 | 
						|
    p >>= 1;
 | 
						|
    while ( p != 0 ) {
 | 
						|
        n *= n; t *= t;
 | 
						|
        if ( (p & 1) != 0 ) {r *= n; s *= t; }
 | 
						|
        p >>= 1;
 | 
						|
      }
 | 
						|
    if (pow<0) {
 | 
						|
      return((a/r)/s);
 | 
						|
    } else {
 | 
						|
      return((a*r)*s);
 | 
						|
    }
 | 
						|
  }
 |