2013-02: Math 2
Calculate the square root of a number without using the Math methods (SquareRoot or Power).
Calcola la radice quadrata di un numero senza utilizzare i metodi Math.SquareRoot(), Math.Power(), …
Soluzione #1
Calcola la radice quadrata di un numero da 1 a 1.000.000 senza utilizzare le funzioni della libreria matematica.
Effettua una ricerca binaria della radice…
TextWindow.Write("Numero da 1 1000000: ") n=TextWindow.ReadNumber() ' -------------------------------------------------------------- minimo =1 massimo=1000 errore =1 ' -------------------------------------------------------------- While(errore > 0.001) x=(minimo+massimo)/2 ' TextWindow.WriteLine(minimo + " - " + x + " - " + massimo) errore=n-x*x if(errore > 0) Then minimo=x ElseIf(errore < 0) Then massimo=x EndIf errore=Math.Abs(errore) EndWhile ' -------------------------------------------------------------- TextWindow.WriteLine("Radice quadrata di " + n + " = " + x)
Soluzione #2
Metodo babilonese (Archita, Erone, Newton...)
TextWindow.Write("Numero: ") n=TextWindow.ReadNumber() ' -------------------------------------------------------------- x=n/2 errore=1 While(errore > 0.001) x=(x+n/x)/2 ' TextWindow.WriteLine(x) errore=Math.Abs(n-x*x) EndWhile ' -------------------------------------------------------------- TextWindow.WriteLine("") TextWindow.WriteLine("Radice quadrata di " + n + " = " + x)