Вычисление квадратного корня - 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; }
Решение задачи: «Вычисление квадратного корня»
textual
Листинг программы
int a; scanf("%d",&a); int b[a];
Объяснение кода листинга программы
- В начале кода объявляется переменная
a
типа int, которая будет использоваться для хранения значения, введенного пользователем. - Затем с помощью функции scanf() пользователю предлагается ввести значение для переменной
a
. - После успешного ввода значения, функция scanf() возвращает ненулевой статус, который используется для проверки корректности ввода.
- Затем происходит объявление массива
b
типа int, размер которого определяется значением переменнойa
. - Массив
b
инициализируется значениями, которые будут использоваться в дальнейшем вычислении квадратного корня. - Код не содержит дополнительной проверки на некорректный ввод или выход за границы массива, поэтому предполагается, что пользователь будет вводить корректные значения для переменной
a
и массивb
будет содержать достаточное количество элементов для выполнения задачи.