@Froman

Как найти сумму элементов последовательности?

Дана последовательность S = 1 + 2/(2*3) - 4/(3*9) + 6/(5*27) - 8/(8*81) + 10/(13*243)-...
Цель: найти сумму элементов данной последовательности с точностью до 0.001. Известно, что ответ - 1.220.
Я пробовал вот так:
int main(void)
{
    float a = 2.0;
    float b = 2.0;
    float c = 3.0;
    float sum;
    float z;
    while( 1 ) {
        z = a / (b * c);
        if( abs(z) < 0.001 ) { break; }
        sum += z;
        a += 2.0;
        b += /////////////// 
        c *= 3.0;
    }
    printf("%.3f\n", sum);
    return 0;
}

Собственно, как я понимаю, переменная b относится к ряду Фибоначчи, однако у меня всё никак не получается правильно сделать запись, чтобы значение b было равно сумме двух предыдущих чисел. Может, вообще надо как-то по-другому делать... Как следует такую задачу решать?
  • Вопрос задан
  • 758 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Очевидно, чтобы иметь возможность складывать предыдущие числа, надо их запоминать.
float b = 2.0;
float bp = 1.0;
float temp;
...
temp = b;
b = b + bp;
bp = temp;

Ну и переменную sum необходимо инициализировать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы