Daffodil International University

IT Help Desk => Programming Language => Programming Competition => Topic started by: msu_math on November 21, 2012, 06:37:27 PM

Title: Calculating Square Root of Integer, PHP Code
Post by: msu_math on November 21, 2012, 06:37:27 PM
The function SquareRoot( $number ) returns square root of integer up to 4 decimal places.

function SquareRoot( $number )
{
$number = $number."00000000";
$number_length = strlen($number);
if($number_length % 2 == 0)
    {
       $dividant = $number[0].$number[1];
       for($i=2;$i<$number_length;$i++) 
           {
                $number[$i-2] = $number[$i];
           }
       $number[$number_length-1] = NULL;
       $number[$number_length-2] = NULL;
       $number_length = $number_length-2;   
    }
else
    {
       $dividant = $number[0]; 
       for($i=1;$i<$number_length;$i++) 
         {         
              $number[$i-1] = $number[$i];
         }
       $number[$number_length-1] = NULL;
       $number_length = $number_length-1;   
    }
$root = 0;
while($dividant != 0)
   {
        $multiplier = 0;
        $product = 0;
        while($product <= $dividant)
              {
                   $divisor = $root*2;       
                   $multiplier = $multiplier+1;   
                   $divisor = $divisor*10+$multiplier;
                   $product = $divisor*$multiplier; 
              }
        $multiplier = $multiplier-1;
        $divisor = $root*20+$multiplier;
        $root = $root*10+$multiplier;
        $square_root = $square_root.$multiplier;
        if($number_length==8)
              {
                   $square_root = $square_root.".";
              }
        $product = $divisor*$multiplier;
        $dividant = $dividant-$product;
        if($number_length <= 0)
            {
                 break;
            }
        $dividant = $dividant.$number[0].$number[1];
        for($i=2;$i<$number_length;$i++) 
             {         
                   $number[$i-2] = $number[$i];
             }
        $number[$number_length-1] = NULL;
        $number[$number_length-2] = NULL;
        $number_length = $number_length-2;
   }
return $square_root;
}
Title: Re: Calculating Square Root of Integer, PHP Code
Post by: tamim_saif on November 21, 2012, 07:46:41 PM
Thanks. You may include sample input and sample output images for more clear Illustration for the students.
Title: Re: Calculating Square Root of Integer, PHP Code
Post by: msu_math on November 22, 2012, 12:08:30 PM
Sample Return value of SquareRoot():

Call: SquareRoot( 562 );     Return value:  23.7065

Steps in Division Method:
---------------------------------------------------------------------------------------
1. Dividant = 5,               Divisor = 2,              Square Root = 2
---------------------------------------------------------------------------------------
2. Dividant = 162,           Divisor = 43,            Square Root = 23
---------------------------------------------------------------------------------------
3. Dividant = 3300,         Divisor = 467,          Square Root = 23.7
---------------------------------------------------------------------------------------
4. Dividant = 3100,         Divisor = 4740,        Square Root = 23.70
---------------------------------------------------------------------------------------
5. Dividant = 310000,     Divisor = 47406,      Square Root = 23.706
---------------------------------------------------------------------------------------
6. Dividant = 2556400,   Divisor = 474125,    Square Root = 23.7065
---------------------------------------------------------------------------------------