Вычисление квадратного корня - C (СИ) (73690)

Формулировка задачи:

я уже смотрел на форуме, какой у квадратного корня алгоритм. В основу моего алгоритма тоже положен метод касательных. Но! У моего алгоритма есть существенное отличие от предыдущих. Вот в чем оно заключается: 1) изначально задается число (это есть у всех) 2) (теперь главное) 3) это число делится на 4 столько раз пока не получится число лежащее в интервале (0,5; 2) 4) количество делений на 4 мы подсчитываем 5) в качестве нулевого приближения берём 1 6) всего 6-ти итераций достаточно, чтобы получить квадратный корень с точностью более 20 знаков 7) умножаем полученное число на 2, столько раз сколько в своё время делили на 4. 8) результат выносится на экран. P.S. Мне кажется, что этот способ более быстрый, ибо умножение и деление на степень 2 происходит быстрее всего.
#include <stdio.h>
#include <stdlib.h>
 
int n = 0, i;
double x, x1 = 1.0;
double kko2();
 
int main()
{
    scanf("%Lf", &x);
    while(x > 2){
        x /= 4;  n++;}
 
    printf("%15.15Lf\n", kko2(x, n));
    getch();
    return 0;
}
double kko2(){
    for(i = 1; i - 6; i++)
        x1 = (x/x1 + x1) / 2;
 
    while (n--)  x1 *= 2 ;
    return x1;
}

Код к задаче: «Вычисление квадратного корня - C (СИ) (73690)»

textual
int a;
scanf("%d",&a);
int b[a];

7   голосов, оценка 4.143 из 5


СОХРАНИТЬ ССЫЛКУ