A114ж

Задача:

Вычислить [latex]\prod _{ i=2 }^{ 100 }{ \frac { i+1 }{ i+2 } } ;[/latex]

Код программы на С++

Код программы на Java

Произведение элементов задаем через цикл, в каждом вычисляя соответствующий множитель.

Результат  = 0.0294118. ( Это и есть 1/34).

(«Математический хак» о котором написал Игорь Евгеньевич, есть сокращение этих сомножителей, а именно:

[latex] \frac { 3 }{ 4 } \cdot \frac { 4 }{ 5 } \cdot \frac { 5 }{ 6 } \cdot \cdot \cdot \cdot \frac { 101 }{ 102 } =\frac { 3 }{ 102 } =\frac { 1 }{ 34 } =0.02941176; [/latex]

 

Related Images:

4 thoughts on “A114ж

  1. Забыли поставить категорию и метки (ключевые слова).

    Задача простая и сделана правильно, только два небольших замечания:

    1. Переменную f (слагаемое) лучше сделать локальной в теле цикла — чем уже область видимости переменной, т.е. она более локальна, тем лучше.

    2. Несколько сомнительно использование типа double для переменной цикла i, ведь по сути задачи она целая. Вы сделали это видимо, чтобы избежать проблемы с делением нацело, впрочем эту проблему можно решить и по другому, а вдруг Вы получите проблему с округлением вещественных чисел и на последней итерации i окажется чуть-чуть больше 100… Хотя сейчас протестировал на ideone и проблемы с округлением целых действительных чисел не наблюдается…

  2. Программа работает. Чуть было не зачёл 🙂
    Потом заметил — где ответ? И ссылка на код в ideOne.
    Давайте я зачту, а Вы быстренько исправите оплошность?

    P.S. Проверяя Вашу программу заметил, что легко могу вычислить это произведение в уме. Получилась 1/34. Угадайте как мне удалось это сделать.
    Конечно, в программе мой способ реализовывать не стоит. Иначе Александр Сергеевич будет снова ругать нас за хакерство 🙂
    Но «хак» здесь математический и описать его в работе стоит.

    P.P.S. Честно говоря из-за усталости глаз, я вначале ошибся и подсчитал произведение не до 100, а до 1000. Получилось 1/334. Это оказалось ничуть не труднее…

Добавить комментарий