Другие языки программирования и технологии

Как составить формулу перед скобкой?

Здравствуйте, недавно дали задание по паскалю, но возникли трудности. Я не знаю, как составить формулу из того, что стоит перед скобкой (фото внизу). Не могли бы вы объяснить, как это сделать?
Umut Sahin
Umut Sahin
337
double mult = 1;
for (long i = 1; i <= n; ++i) mult *= 1 + pow(a, i) / ((i * (i + 1)) >> 1);
Станислав Гриценюк
Станислав Гриценюк
66 283
Лучший ответ
Это раскрывается так:
(а1/1 + 1) * (а2/(1 + 2) + 1) * (а3/(1 + 2 + 3) + 1) * ...*(аN/( 1 + 2 + 3 +..+ N) + 1)
NN
Naryn Nurkasymov
68 734
Нет времени объяснять, копируй и вставляй
function Pt(a0 : Real; n : Integer) : real;
var ai, pi, R : Real; tr, i : Integer;
begin
ai:= 1; R:= 1; tr:= 0;
for i:= 1 to n do begin
ai:= ai * a0;
tr:= tr + i;
pi:= 1 + ai / tr;
(* pi:= 1 + 2 * ai / i / (i + 1); *)
R:= R * pi
end;
Pt := R
end;

var A : Real; N : Integer;
begin
write('A = '); readLn(A);
write('N = '); readLn(N);
writeLn(Pt(A, N))
end.
Максим Фокин
Максим Фокин
62 975
Максим Фокин ai - "накопитель" степени числа a
pi - очередной множитель для вычисления произведения-результата
tr - очередное "треугольное" число
Umut Sahin Спасибо, я уже разобрался
делаешь некую переменную, равную 1, потом в цикле домножаешь

не знаю как в паскале, но на Си код такой:

int x = 1;
for (i = 1; i <= N; i++) {
int sum = 0;
for (int j = 1; j <= i; j++) {
sum += j;
}
x *= pow(a, i) / sum + 1;
}
Naryn Nurkasymov Это про что? Будет факториал от (N-1). А совсем не то, что требуется!