Вычислить значение выражения, используя рекурсию - C (СИ)
Формулировка задачи:
НУжно вот это задание в рекурсию переделать...сам пробовал такого понаделал))) С помощью цикла сделал...В рекурсию надеюсь на вашу помощь)))(ЯЗЫК СИ БЕЗ ++)
int _tmain(int argc, _TCHAR* argv[])
{
double y0 = 1, y1;
int n = 0;
double e;
printf("\nEnter Е: ");
scanf("%lg", &e);
do
{
y1 = (y0 + 1) / (y0 + 2);
y0 = y1;
n++;
}while( (y1 - y0) > e);
printf("\nyn = %lg\n", y1);
system("pause");
return 0;
}Решение задачи: «Вычислить значение выражения, используя рекурсию»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
int main(int argc, const char* argv[])
{
double y0, y1 = 1;
double e;
printf("Enter E: ");
scanf("%lg", &e);
do
{
y0 = y1;
y1 = (y0 + 1) / (y0 + 2);
}
while ((y0 - y1) > e);
printf("\nyn = %g\n", y1);
system("pause");
return 0;
}
Объяснение кода листинга программы
В этом коде выполняется вычисление числа y, которое является итеративным решением уравнения y1 = (y0 + 1) / (y0 + 2), где y0 - начальное приближение, а y1 - итерация. В цикле do-while выполняется итеративный процесс до тех пор, пока разница между текущим и предыдущим значением y не станет меньше заданной точности e. Значение y выводится на экран, после чего программа завершается.