RosettaCodeData/Task/Nth-root/S-BASIC/nth-root-2.basic

27 lines
624 B
Plaintext

rem - return the nth root of x to stated precision
function nthroot(n, x, precision = real.double) = real.double
var x0, x1 = real.double
x0 = x
x1 = x / n rem - initial guess
while abs(x1 - x0) > precision do
begin
x0 = x1
x1 = ((n-1.0) * x1 + x / x1 ^ (n-1.0)) / n
end
end = x1
rem -- exercise the routine
var i = integer
var x = real.double
x = 144
print "Finding the nth root of"; x; " to 8 decimal places"
print " x n root"
print "------------------------"
for i = 2 to 8
print using "### #### ###.########"; x; i; nthroot(i, x, 1E-9)
next i
end