Условие задачи:
Найти сумму сходящегося ряда:
[latex]\frac{1}{1 \cdot 2} + \frac{1}{2 \cdot 3} + \frac{1}{3 \cdot 4} + … + \frac{1}{n(n + 1)} + …[/latex]
Входные данные:
Целое число [latex]n[/latex] — номер искомой частичной суммы.
Выходные данные:
Искомая частичная сумма.
Тесты:
№ | Вход | Выход |
---|---|---|
1 | 1 | 0.5 |
2 | 500 | 0.998004 |
3 | 100000 | 0.999965 |
Код на языке C++ (первый вариант):
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#include <iostream> using namespace std; int main() { int n; double S = 0; cin >> n; for (int i = 1; i <= n; i++){ S += 1.0/(i*(i + 1)); } cout << S; return 0; } |
Код на языке Java (первый вариант):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import java.util.*; import java.lang.*; import java.io.*; class Main { public static void main (String[] args) throws java.lang.Exception{ Scanner in = new Scanner(System.in); PrintWriter out = new PrintWriter(System.out); int n; n=in.nextInt(); double S = 0; for (int i = 1; i <= n; i++){ S += 1.0/(i*(i + 1)); } System.out.println(S); } } |
Код на языке C++ (второй вариант):
1 2 3 4 5 6 7 8 9 10 11 |
#include <iostream> using namespace std; int main() { int n; double S = 0; cin >> n; S = 1-(1/n); cout << S; return 0; } |
Код на языке Java (второй вариант):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import java.util.*; import java.lang.*; import java.io.*; class Main { public static void main (String[] args) throws java.lang.Exception { Scanner in = new Scanner(System.in); PrintWriter out = new PrintWriter(System.out); int n; n=in.nextInt(); double S = 0; S=1-(1/n); System.out.println(S); } } |
Решения:
Вариант первый (решение с циклом): Зададим цикл с счетчиком [latex]i[/latex] от 1 до заданного пользователем числа [latex]n.[/latex] Именно такое количество необходимых слагаемых [latex]\frac{1}{n(n + 1)}[/latex] будет найдено на каждом шаге цикла для последующего суммирования и нахождения искомой частичной суммы.
Вариант второй (решение без цикла): Ряд сводится к ряду: [latex](1 — \frac{1}{2}) + (\frac{1}{2} — \frac{1}{3}) + … + (\frac{1}{n} — \frac{1}{n + 1})[/latex]. От сюда имеем: [latex]1 — \frac{1}{n + 1}.[/latex]
Ссылки:
Условие задачи (стр.248).
Первый вариант C++ .
Первый вариант Java .
Второй вариант C++ .
Второй вариант Java .
Искомая частичная сумма может быть вычислена по формуле
$$1 — \frac{1}{n+1}$$
Вы имеете в виду, что $\sum\limits_{n=2}^{m}\frac{1}{n\left(n-1 \right)}=1-\frac{1}{m}$? Это действительно так. Но перед Аллой ставилась задача написать упражнение на циклы.
Понял:)
Алла, Вы так и не написали пояснения к решению? может заодно сделаете вариант без циклов?