Please leave your comments thanks.Code:static double PowerDec(double x, double a){ //Evaluates decimal powers from i+0.01 -> i+0.99 double b = 0;//value of the root. int i = 0; //Check special cases if (a == 1) return x; //Check power if > 1. while (a > 1) { a -= 1; i += 1; } //MAIN if( (a>=0.01) && (a<0.125) ){ //0.11 1/9 while ((b*b*b*b*b*b*b*b*b) <= x) { b += 0.0001; } } if( (a>=0.125) && (a<0.14) ){ //0.125 1/8 while ((b*b*b*b*b*b*b*b) <= x) { b += 0.0001; } } if( (a>=0.16) && (a<=0.17) ){ //0.16 1/6 while ((b*b*b*b*b*b) <= x) { b += 0.0001; } } if( (a>=0.14) && (a<0.17) ){ //0.14 1/7 while ((b*b*b*b*b*b*b) <= x) { b += 0.0001; } } if( (a>0.17) && (a<0.25) ){ //0.2 while ((b*b*b*b*b) <= x) { b += 0.0001; } } if( (a>=0.25) && (a<0.3) ) {//0.25 while ((b*b*b*b) <= x) { b += 0.0001; } } if( (a>=0.3) && (a<0.45) ) {//0.3 while ((b*b*b) <= x) { b += 0.0001; } } if( (a>=0.45) && (a<0.55) ) {//0.5, just call sqrt b=Sqrt(x); } if( (a>=0.55) && (a<0.65) ) {//0.6, 3/5 while ((b*b*b*b*b) <= (x*x*x)) { b += 0.0001; } } if( (a>=0.65) && (a<0.75) ) {//0.7, 7/10 while ((b*b*b*b*b*b*b*b*b*b) <= (x*x*x*x*x*x*x)) { b += 0.0001; } } if( (a>=0.75) && (a<0.85) ) {//0.8, 4/5 while ((b*b*b*b*b) <= (x*x*x*x)) { b += 0.0001; } } if( (a>=0.85) && (a<=0.99) ) {//0.9, 9/10 while ((b*b*b*b*b*b*b*b*b*b) <= (x*x*x*x*x*x*x*x*x)) { b += 0.0001; } } //Check if i>=1, multiply b by x i times until i becomes less than 1. //IE x^(1.2) = x^1 * x^0.2 while (i>=1) { b *= x; i -= 1; } return b; }





Reply With Quote