e-olimp 146. Квадраты — 2

Задача

В белом квадрате [latex]N[/latex] раз выполнили одну и ту же операцию: один из наименьших белых квадратов разбили на 4 одинаковых квадрата и из них закрасили черным цветом. Для данного [latex]N[/latex] вычислить, сколько процентов занимает площадь черной фигуры.

Входные данные

Во входном файле одно число [latex]N[/latex]. [latex]1 ≤ N ≤ 100[/latex].

Выходные данные

В выходной файл нужно записать ответ, вычисленный с точностью 5 знаков после запятой по правилам математических округлений.

Тесты

Входные данные Выходные данные
1 50.00000
3 65.62500
10 66.66660
50 66.66667
100 66.66667

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

Решение задачи

При [latex]N=1[/latex] площадь черной фигуры составляет [latex]50\%[/latex]. При [latex]N=2[/latex] площадь фигуры равна [latex]50\%+50\%\cdot 1/4[/latex]. При [latex]N=3[/latex] площадь черной фигуры составляет [latex]50\%+50\%\cdot 1/4+50\%\cdot 1/16[/latex]. Очевидно, что перед нами геометрическая прогрессия. Процент, занимаемый площадью черной фигуры, будем искать через сумму геометрической прогресcии: [latex]S_n={{b_1(1-q^N)}\over{1-q}}[/latex], где [latex]q={{b_2}\over{b_1}}={{12.5}\over{50}}=0.25[/latex], [latex]N-[/latex]кол-во операций.

Ссылки

Условие задачи на e-olymp
Код решения

Related Images:

D2547. Cумма ряда

Задача

Доказать сходимость и найти сумму ряда [latex]\sum \limits_{n=1}^{\infty}\left(\frac{1}{2^n}+\frac{1}{3^n}\right)[/latex].

Код на C++

Код на Java

Решение

Разобьем ряд на два: [latex]\frac{1}{2^n}[/latex] и [latex]\frac{1}{3^n}[/latex]. Оба ряда являются бесконечно убывающими геометрическими прогрессиями, следовательно они сходятся и сумма этих рядов тоже будет сходиться. Знаменателем первой прогрессии([latex]s_1[/latex]) будет [latex]\frac{1}{2}[/latex], а знаменателем второй([latex]s_2[/latex]) — [latex]\frac{1}{3}[/latex]. Тогда по формуле суммы бесконечно убывающей прогрессии: [latex]s=\frac{b_1}{1-q}[/latex], где [latex]b_1[/latex] первый член прогрессии, а [latex]q[/latex] — ее знаменатель. Затем суммируем суммы прогрессий и получаем ответ.

Ответ

[latex]\sum \limits_{n=1}^{\infty}\left(\frac{1}{2^n}+\frac{1}{3^n}\right)=\frac{3}{2}=1.5[/latex].

Ссылки

1.Решение на C++

2.Решение на Java

3.Решение на WolframAlpha

 

Related Images:

ML21

Задача. Найти сумму членов арифметической прогрессии a, a+d, a+2d \dots, a+(n-1)d по данным значениям a, d, n.

Тесты:

[latex]a[/latex] [latex]d[/latex] [latex]n[/latex] [latex]Sn[/latex]
8 657 0 0
5 0 2 10
5 8 1 5
0 5565 88 21302776

Код:

Алгоритм.

В данной программе я воспользовался формулой суммы арифметической прогрессии. А именно [latex] S_{n} = \frac{a_{1} + d(n — 1)}{2} * n [/latex], где [latex]a_{1}[/latex] — первый член арифметической прогрессии, [latex]d[/latex] -разница арифметической прогрессии и [latex]n[/latex] — номер последнего члена суммы. Программа же просто выводит результат данных вычислений на экран.

Related Images:

Ю1.7

Задача: Селекция. Селекционер вывел новый сорт зерновой культуры и снял с опытной делянки [latex]k[/latex]  кг семян. Посеяв 1 кг семян, можно за сезон собрать [latex]p[/latex] кг семян. Через сколько лет селекционер сможет засеять новой культурой поле площадью [latex]s[/latex] га, если норма высева [latex]n[/latex] кг/га?

Тесты:

k p s n result
1 1 1 1 error
1 2 3 4 2
 3.5 11 56 3.77 1
 34 55.4 109 31.456 error

Исходный  код программы:

Версия кода на языке Java:

Ссылка:http://ideone.com/2TY3PH

Программы вычисляет результат по найденной формуле:

                [latex]\frac{log(\frac{(n \times s)}{k})}{log(p)}[/latex]

Поскольку используется функция логарифма, необходимо включить заголовок math библиотеки математических функций.

 

Программа состоит из следующих частей:

  1. Объявление переменных k,p,s,n типа float для хранения входных данных
  2. Вывод приветствия
  3. Ввод пользователем значений переменных k,p,s,n с помощью scanf
  4.  Вывод исходных данных
  5. Вычисление и вывод результата по формуле с предварительной проверкой значения p, которое не должно равняться 1, так как находиться в формуле под логарифмом.
  6. Завершение программы

 

Программа проверялась по таблице наборов входных данных. Некоторые наборы содержали неправильное значение p = 1. Для этих значений программа выдала предусмотренное сообщение об ошибке. Для правильны данных результат совпал с вычисленным вручную.

Related Images: