#include <math.h>
#include <stdio.h>
int main() {
int num;
int res;
num=10;
res = (int)sqrt((double)num);
printf("result = %d",res);
return 0;
}
Получение целого значения квадратного корня для целого числа
http://kazus.ru/articles/234.html приведено описание алгоритма на математическом языке. К сожалению, даже коллектив из двух профессоров математики не смог мне помочь в переведении этого алгоритма в набор арифметических выражений оперирующих целыми числами для получения результата. Что скажете вы?
Вот тут:
Мы скажем, что на форуме для таких тем есть специальный раздел - "Студенты", куда и переезжаем...
Код:
Код:
program test;
var
num,res:integer;
begin
num:=10;
res:=round(sqrt(num));
writeln('result = ', res);
end.
var
num,res:integer;
begin
num:=10;
res:=round(sqrt(num));
writeln('result = ', res);
end.
svalvz, если не подходит, то конкретнее опишите, что Вам нужно
Меня не поняли... Добыча квадратного корня целочисленным методом ускорит в тысячи раз работу процедуры Dithering, т.к. по палитре ищется цвет наиболее близкий а для этого искомый цвет разбивается на RGB и для каждой компоненты возведённой в квадрат ищутся наиболее близкие значения в палитре тоже возведённой в квадрат. Мне надо добычу квадратного корня используя только арифметические действия по отношению только к целочисленным переменным.
Но я нашел несколько статей по теме, должны помочь:
wikipedia:Квадратный корень
Журнал "Квант"
Paul Hsieh's Square Root page(С кодом на С и ассемблере)
A geometric view of the square root algorithm