Сколько сомножителей нужно взять в произведении, чтобы равенство выполнялось с точностью эпсилон? - C (СИ)
Формулировка задачи:
Здравствуйте!
Никак не могу написать код к этой задаче : Известно равенство, определить сколько сомножителей нужно взять в произведении , что бы равенство выполнялось с точностью эпсилон.
Заранее спасибо.
Решение задачи: «Сколько сомножителей нужно взять в произведении, чтобы равенство выполнялось с точностью эпсилон?»
textual
Листинг программы
#include <math.h>
#include <conio.h>
#include <stdio.h>
int main ()
{
float e;
printf ("Programa\n");
printf ("Vvedit e: ");
scanf ("%f", &e);
double x=1;
int k, n;
for(k = 2, n = 1;;k++, n++)
{
x*= 1.0 - (1.0 / pow(k, 2));
if (fabs(x - 0.5)<e){
printf("Kilkist spivmnojnikiv %i\n",(k - 1));
break;
}
}
getch();
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с математикой, вводом и выводом данных.
- Определение переменной
e, которая используется для задания точности вычислений. - Вывод на экран приглашения для ввода значения переменной
e. - Считывание значения переменной
eс помощью функции scanf. - Инициализация переменной
xзначением 1.0. - Объявление переменных
kиn, которые используются в цикле. - Запуск цикла, который выполняется до тех пор, пока значение переменной
xне станет равным 0.5 с точностью доe. - Внутри цикла перемножение переменной
xна разность между 1.0 и обратным квадратом числаk. - Сравнение абсолютного значения разности между переменной
xи 0.5 с заданной точностьюe. - Если условие выполняется, то выводится сообщение с количеством сомножителей и цикл прерывается.
- Завершение программы с помощью функции getch() и возврат значения 0.