Знайдіть суму#8546

Знайдіть суму (Розбір)

Обчислимо вказану суму за допомогою циклу.

Обчислимо вказану суму математично:

{1 \over 1 \cdot 2} + {1 \over 2 \cdot 3} + ... + {1 \over n \cdot (n + 1)} = \\ \left( {1 \over 1} - {1 \over 2} \right) + \left( {1 \over 2} - {1 \over 3} \right) + ... + \left( {1 \over n} - {1 \over n + 1} \right) = 1 - {1 \over n + 1}

Тепер для знаходження відповіді можна скористатися формулою.

Реалізація алгоритму

Читаємо вхідне значення .

scanf("%d",&n);

У змінній перебираємо числа 1, 2, 3, ..., n. На кожній ітерації до результатуючої суми додаємо значення 1 / (i \cdot (i + 1)).

s = 0; i = 1;
while (i <= n) 
{
  s += 1.0 / i / (i + 1);
  i++;
}

Виводимо шукану суму.

printf("%lf\n",s);

Реалізація алгоритму — цикл for

Читаємо вхідне значення .

scanf("%d",&n);

Шукану суму обчислюємо у змінній .

s = 0;

За допомогою циклу обчислюємо значення суми, що складається з доданків. -ий доданок дорівнює 1 / (i \cdot (i + 1)).

for (i = 1; i <= n; i++)
  s += 1.0 / (i * (i + 1));

Виводимо шукану суму.

printf("%.6lf\n",s);

Реалізація алгоритму — формула

Читаємо вхідне значення .

scanf("%d", &n);

Обчислюємо відповідь за формулою та виводимо її.

s = 1 - 1.0 / (n + 1);
printf("%.6lf\n", s);

Java реалізація

import java.util.*;

class Main 
{
  public static void main(String[] args) 
  {
    Scanner con = new Scanner(System.in);
    int n = con.nextInt();

    double s = 0;
    for(int i = 1; i <= n; i++)
      s += 1.0 / (i * (i + 1));

    System.out.printf("%6f\n", s);
    con.close();
  }
}

Python реалізація

Читаємо вхідне значення .

n = int(input())

Шукану суму обчислюємо у змінній .

s = 0;

За допомогою циклу обчислюємо значення суми, що складається з доданків. -ий доданок дорівнює 1 / (i \cdot (i + 1)).

for i in range(1, n+1):
  s += 1.0 / (i * (i + 1));

Виводимо шукану суму.

print(s)