Вычислить корень из числа типа long без потери точности - C (СИ)
Формулировка задачи:
Собственно, задание такое:
Нужно вычислить из очень большого числа типа long квадратный корень, не переводя его в double и без потери точности.
Решение задачи: «Вычислить корень из числа типа long без потери точности»
textual
Листинг программы
#include <stdio.h>
int main ()
{
long long x = 8736028797018964569LL;
long long temp;
double d = x;
long long delta;
double delta2;
temp = d;
delta = temp - x;
delta2 = delta;
printf ("x=%lld\n", x);
printf ("d=%lf\n", d);
printf ("c=%lld\n", temp);
printf ("delta=%lld\n", delta);
printf ("delta2=%lf\n", delta2);
printf ("%lf-%lf=%lf\n", d, delta2, d-delta2);
return 0;
}
Объяснение кода листинга программы
В данном коде на языке C вычисляется корень из числа типа long long без потери точности. Код выполняет следующие действия:
- Инициализирует переменную
xзначением 8736028797018964569LL. - Инициализирует переменную
tempзначением переменнойd. - Вычисляет разность
deltaмеждуdиx. - Вычисляет разность
delta2междуdиtemp. - Выводит значения переменных
x,d,temp,deltaиdelta2на экран. - Вычисляет разность между
dиdelta2и выводит ее значение. - Завершает работу программы. Список действий:
- Инициализация переменной
x- код 1 - Инициализация переменной
temp- код 2 - Вычисление разности
delta- код 3 - Вычисление разности
delta2- код 4 - Вывод значений переменных - код 5
- Вычисление разности - код 6
- Завершение работы программы - код 7