Вычислить значение выражения - C (СИ) (70561)
Формулировка задачи:
Всем привет! Нужна ваша помощь с заданием:
Вычислить
S=(1 + 1/3)*(1/5+ 1/7)*( 1/9+ 1/11 + 1/13)*...*( 1/33+1/35+1/37+1/39+ 1/41+1/43)
Буду очень благодарен за помощь.
Решение задачи: «Вычислить значение выражения»
textual
Листинг программы
#include <stdio.h>
int main() {
int i = 1, k;
int j, prev = 3;
double res = 1;
double sum = 1;
for(i = 1; i<=6; i++){
for (j = prev, k = i; j <= 43; j+=2) {
res += 1.0 / j;
prev = j + 2;
k--;
if (k == 0) break;
}
sum *= res;
res = 0;
}
printf("%f\n", sum);
return 0;
}
Объяснение кода листинга программы
В этом коде выполняются два вложенных цикла. Первый цикл идет от 1 до 6, а второй - от 3 до 43 с шагом 2. В каждой итерации внутреннего цикла переменная res увеличивается на 1/j, где j - это значение из диапазона от 3 до 43 с шагом 2. Затем переменная prev увеличивается на 2, а переменная k уменьшается на 1. Если k становится равным 0, то цикл прерывается. Переменная sum перемножается на значение res после каждой итерации внешнего цикла. Значение res затем обнуляется. В конце программы выводится значение sum.