Задача: Рекуррентная формула(произведение)

  • Автор темы Guest
  • Дата начала
G

Guest

#1
никак не могу написать 4 лабу.
подскажите, как написать прогу.
по рекуррентной формуле необходимо вычислить произведение
где П - произведение
 

acorn

PHP Developer
29.08.2004
585
3
#2
C++:
double y = 0;
double x = 3.5;
int n = 75;

y += x;

double p = 1;
for (int i = 4; i <= n; i++)
{	 
p *= log(1+(x/(7+x))*sqrt(i));
}
y += x/(7+x)*p;

}
cout << y;
 

hosm

* so what *
18.05.2009
2 442
6
#6
Acorn
А этот за тернарный не пройдет?
(a)? b : c;
"мальчики, не ссорьтесь"...
 
F

flashkpi

#11
Если че, пиши, сделаю, а вы не ссорьтесь -))
icq: 588002847
email: flash_1989@ukr.net
 

lazybiz

Well-known member
03.11.2010
1 339
0
#12
Не надо никому ничего писать. Вот правильное решение:

C++:
#include <iostream.h>
#include <math.h>

double	x	= 3.5;

int main( void )
{
int		i, n;
double	y, m;

cin >> n;

for ( m = 1.0, i = 4; i < n; i++ ) {
m *= log( 1 + (x / (7 + x)) * sqrt( i ) );
}
y = x + x / (7 + x) * m;
cout << y;

return 0;
}
Хотя тут и решать то нечего...
 

DarkKnight

Well-known member
01.08.2010
653
0
#14
Да автор хотел что бы вы ему рекурсивную функцию сделали ;-))
Ну мне так показалось из задания ;-)

Добавлено:
C++:
#include <iostream>

using namespace std;

double Funct (double x, double i, double max) //Рекурсивная функция x- аргумент, i - текущий щаг, max - максимальный шаг
{
if (i >max) return 1;
return log(1+ (x/(7+x) * sqrt(i))) * Funct(x,i+1,max);
}

void main(void)
{
setlocale(LC_ALL,"Russian");
double n;
double x;
cout<<"Введите х = ";
cin>>x;
cout<<"Введите n = ";
cin>>n;
cout<<"Результат: "<<((x+x/(7+x))*Funct(x,4,n));

}