Найти первый член последовательности, для которого выполнено условие - C (СИ)
Формулировка задачи:
Найти первый член последовательности, для которого выполнено условие /an-an-1/<e, если последовательность образована по закону:
an=(1-1/2!)(1+1/3!)…(1+(-1)^n/(n+1)!) ПОМОГИТЕ НЕ МОГУ ОБЬЯВИТЬ ФАКТОРИАЛ В ЭТОЙ ПРОГРАММЕ!!!
#include <stdio.h>
#include <conio.h>
#include <math.h>
main()
{
double x,an,am,e;
int n;
printf ("vizislenie X1 posledovatelnosti,\n");
printf ("dla kotorogo vipolneno uslovie\n");
printf ("vvedite pervii chlen\n");
scanf("%lf",&x);
printf ("vvedite toznost\n");
scanf("%lf",&e);
printf ("chleni posledovatelnosti\n");
an=x;n=0;
do
{n++;
am=an;
an=( 1 + ( pow(-1.0, n)) /(n+1)!);
printf ("%lf\n",an);
} while (fabs(an-am)>=e);
printf ("vizislenie X1 posledovatelnosti,\n");
printf ("dla kotorogo vipolneno uslovie:%lf",an);
getch();
}Решение задачи: «Найти первый член последовательности, для которого выполнено условие»
textual
Листинг программы
prev = 1;
cur = 1;
n = 1;
do {
n++;
prev = cur;
cur = prev * ( 1 + ( pow(-1.0, n)) / fact(n+1) );
printf ("%lf\n", cur);
} while (fabs(cur-prev)>=e);
printf ("Answer: %lf\n", cur);
Объяснение кода листинга программы
В данном коде решается задача нахождения первого члена последовательности, для которого выполняется заданное условие.
- Объявляются переменные: prev — предыдущий член последовательности; cur — текущий член последовательности; n — номер текущего члена последовательности; e — заданная точность.
- Задаётся начальное значение для prev и cur, равное 1.
- Устанавливается начальное значение для n равное 1.
- Запускается цикл do-while, который выполняется до тех пор, пока изменение cur относительно prev не станет меньше заданной точности e.
- Внутри цикла выполняются следующие действия: n увеличивается на 1; prev присваивается значение cur; cur вычисляется как произведение prev на (1 + (pow(-1.0, n)) / fact(n+1)); значение cur выводится на экран с помощью функции printf;
- После окончания цикла выводится на экран значение cur, являющееся ответом на задачу.