RU

Обсуждение примеров кода

Ntropy Moderator 12.05.2010 13:54 4 comments 6887 views

В этой теме предлагаю обсудить примеры кода выложенные на сайте (в меню “Разработчикам”) или новые.

Edited at 12.05.2010 14:13 (15 years ago)

Пример простого целочисленного вычисления квадратного корня:

n=16
div=1 & res=0
:loop
if n>0:
	n-=div & div+=2 & res+=iif(n<0,0,1)
	jump 'loop'
end

Исходное число - n. Результат в res.

Byte:

Пример простого целочисленного вычисления квадратного корня:…

Этот алгоритм вычисляет кв.корень с недостатком (выдает натуральное число, квадрат которого не превосходит исходное), т.е. дробная часть результата отбрасывается. Например, для n=63 результат будет 7 (точное значение 7,9372…).
Несложно чуть изменить алгоритм, чтобы в результате получалось число, квадрат которого ближе к исходному, т.е. происходило бы не отбрасывание, а округление точного значения корня к ближайшему целому.

k=63
n=k
div=1 & res=0 
:loop 
if n>0: 
    n-=div & div+=2 & res+=iif(n<0,0,1) 
    jump 'loop' 
end
if k-res*res > (res+1)*(res+1)-k : res+=1

Здесь исходное число (в примере 63) нужно присвоить переменной k. В приведенном примере получится res=8

Обновил архив старых примеров: вычистил ненужные завязки на COUNTER, сделал отключение лишних окон, привел к актуальному виду код.
Теперь архив называется “28 в 1”, кто качал, обновите ;)

Dark[Ol(U23)leneri] #34 30.05.2011 23:08 (14 years ago)

Надо бы.=)

Log in or Register to post comments.