📄 nwtnsqrt.bas
字号:
DEFDBL A
DEFINT D, G, K-M '
DEFLNG N-T '
DERROR = 1 'COMPUTE TO WITHIN 1 BIT
'
START: PRINT : INPUT "ARGUMENT"; ARG 'THE ARGUMENT
IF ARG <> INT(ARG) THEN GOTO START 'MUST BE INTEGRAL
PARG = ARG 'ARGUMENT IS A 32-BIT #
N = (LOG(PARG)) / (LOG(2)) '# OF SIG FIGS IN PARG
OLDGUESS = 2 ^ (N / 2) 'GOOD INITIAL GUESS
'
LOOP0: FOR K = 0 TO 8191 '''''''''ITERATION COUNTER
NEWGUESS = (PARG / OLDGUESS + OLDGUESS) / 2 'THE NEW GUESS
IF ABS(NEWGUESS-OLDGUESS)<=DERROR THEN K0 = K: K = 8191: GOTO FIN
OLDGUESS = NEWGUESS 'NEW IS NOW OLD
'
FIN: NEXT K 'GO MORE
PRINT "SQR("; PARG; ")="; NEWGUESS; ", ITERATIONS="; K0 + 1
GOTO START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -