А116г

Задача

Даны натуральное число [latex]n[/latex] и действительное число [latex]x[/latex]. Вычислить [latex]\prod\limits_{k = 1}^n (1+\frac{\sin(kx)}{k!})[/latex].

Тесты

 №      n       x         Произведение
  1      4    3.22                0.9673
  2     11   214.3                2.8177
  3      1      14                1.9906
  4      7    0.76                2.8456

Решение

Проверить работу кода можно в облаке по ссылке — Ideone.

Пояснения

Для вычисления данного в условии произведения кроме действительного  x  и натурального  n  введем такие переменные:  mult  — переменная произведения для вычисления в цикле,  fact  — переменная факториала [latex]k[/latex].

Инициализируем переменные  n  и  x значениями из потока ввода, после чего создаем цикл по [latex]k[/latex] от 1 до [latex]n[/latex], в котором будет вычисляться факториал и, собственно, само произведение. При вычислении произведения используем функцию sin()  стандартной библиотеки Math. По завершению цикла, выводим произведение с точностью до четырёх символов после запятой.

MLoop 15. Циклические вычисления

Условие
Вычислите с точностью  значение функции $latex f(x)=\csc x$. При вычислениях допустимо использовать только арифметические операции.

          x $latex \varepsilon$  Результат
42 0.3 -8.09848e-05
8 0.15 -0.0117188
55.5 0.04 -3.50972e-055
-12 0.6 0.00347222
-82 0.0001 -3.23677e-08
Решение
Косеканс — это тригонометрическая функция, которою можно определить формулой $latex \csc x=\frac{1}{\sin x}$. Таким образом, мы можем разложить  функцию в бесконечную сумму степенных функций, воспользовавшись формулой Тейлора. Получим, что $latex \sin x=x-\frac{{x}^{3}}{3!}+\frac{{x}^{5}}{5!}-\dots=\sum_{n=0}^{\propto}\frac{{-1}^{n}\times{x}^{2n+1}}{\left(2n+1\right)!}$. Слагаемые данной суммы являются геометрической прогрессией, знаменатель который можно найти по формуле $latex \frac{a_n}{a_{n-1}}=\frac{\frac{{-1}^{n}\times{a}^{2n+1}}{\left(2n+1 \right)!}}{\frac{{-1}^{n-1}\times{a}^{2n-1}}{\left(2n-1 \right)!}}=\frac{\left( -1\right){a}^{2}}{2n\times\left( 2n+1\right)}$  .  Будем вычислять сумму до тех пор, пока разность -го и  -го слагаемых  будет больше заданной точности.

Ideone.com

MLoops 17

Задача

Найти закономерность и написать программу, которая выводит аналогичную таблицу для любых чисел n>0(количество столбцов) и m>0 (количество строк).

Замечание 1. В некоторых задачах появляется дополнительный параметр k < n.

Тесты

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

m n k
13 31 9

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

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

m n k
5 8 4


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

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

m n k
20 20 3

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

Алгоритм

Программа выполняется с помощью двух циклов. Первый цикл отвечает за строки, второй за столбцы. Метод заключается в том, чтобы узнать, когда мы записываем именно ‘+’, а уже в остальные места записываем ‘.’.  Для начала проверяем делится ли номер строки, уменьшенный на 1, нацело на 6. Если да, то записываем +.  Далее проверяем, делится ли номер столбца,  уменьшенный на 1, на число k+1, где k — вводимый параметр. Во всех остальных случаях пишем ‘.’.

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

Ссылка на Ideone

http://ideone.com/9QGk0A

А694а

Задача
Получить квадратную матрицу порядка n
\begin{pmatrix}1 &0 &\cdots & 0 \\ 0 & 1 &\cdots &0 \\ \cdots &\cdots &\cdots \cdots & \cdots \\ 0 & 0 & \cdots & 1\end{pmatrix}

Тесты

n Матрица
3 1 0 0
0 1 0
0 0 1
4 1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
6 1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1

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

Ход работы:

1. С помощью цикла заполняем главную диагональ единицами.

2. Приравниваем элементы не равные единице к нулю.

3. Вывод массива.

Ссылка на ideone

A410e

Дана целочисленная матрица [latex]\begin{bmatrix}a_{i,j}\end{bmatrix},i,j=1,..,n[/latex].Получить [latex]b_{1},..,b_{n}[/latex],где [latex]b_{i}[/latex] — это:

[latex]\underset{1\leq j\leq n}{\max a_{ij}}\ * \underset{1\leq j\leq n}{\min a_{ji}}[/latex]

Исходя из задачи ясно, что из данной матрицы надо взять максимальный элемент [latex]i[/latex]-й строки и умножить его на минимальный элемент [latex]i[/latex] -го столбца. Так например, если нам дана матрица 2-го порядка [latex]\begin{Vmatrix}1&2\\4&1\end{Vmatrix}[/latex] то [latex]b_{1} = 2[/latex], [latex]b_{2} = 4[/latex].

 

Тесты

Матрица порядка [latex]n[/latex], где [latex]n[/latex]: [latex]a[i][j][/latex] Результат
2 [latex]\begin{Vmatrix}1&2\\4&1\end{Vmatrix}[/latex] 2 4
3 [latex]\begin{Vmatrix}1&2&3\\4&1&-6\\1&-2&-1\end{Vmatrix}[/latex] 3 -8 -6

Решение

Для нахождения максимума  [latex]a_{ij}[/latex], введем переменную и будем придавать ей начальное значение 1-го элемента [latex]i[/latex]-й строки. Дабы при расчете максимума проходя по элементам строки мы не сравнивали каждый [latex]i[/latex]-й элемент с 1-м, придавать начальное значение максимуму мы будем в цикле по [latex]i[/latex]. Аналогично с минимумом [latex]a_{ij}[/latex], одно единственное но, начальное значение минимума будет равно первому элементу [latex]i[/latex]-го столбца.

http://ideone.com

e-olymp 904. Увеличить на 2

Постановка задачи

Задан одномерный массив [latex]A[/latex] целых чисел. Увеличить на [latex]2[/latex] каждый неотрицательный элемент массива.

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

В первой строке задано натуральное число [latex]n[/latex] — количество элементов массива [latex]n <= 100[/latex]. Во второй строке через пробел заданы сами элементы массива, значение каждого из которых по модулю не превышает 100.

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

В единственной строке вывести через пробел [latex]n[/latex] чисел: новые значения элементов массива, в том же порядке, в котором они были заданы.

Код

Тесты

Входные данные Выходные данные
4
1 2 3 4
3 4 5 6
4
1 2 3 -4
3 4 5 -4
4
-1 2 3 4
-1 4 5 6
4
0 2 3 4
2 4 5 6
4
1 2 2 4
4
1 2 2 4

Решение

Вводим число [latex]n[/latex]. Используем цикл for и вводим число [latex]a[/latex]. Выводим неотрицательное число [latex]a[/latex], либо без изменений, либо увеличенное на два.
e-olymp.com
ideone.com

Ю 3.32

Задача:
Вычислить [latex]x=2\left(\sin x-\frac{\sin 2x}{2}+\frac{\sin 3x}{3}-\cdots+\left(-1 \right)^{n-1} \frac{\sin nx}{n}\right), [/latex] [latex]-\pi < x < \pi [/latex]

Тесты

n x Сумма Комментарий
3 1 0.867725 Пройден
2 2 2.575397 Пройден
1 5 -1.917849 Пройден

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

Описание решения:

Запишем общий вид суммы: [latex]2\sum_{i=1}^{n}{\left(-1 \right)^{n-1}}\frac{\sin ix}{i}[/latex]

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

Ссылка на ideone

e-olymp 1210. Очень просто!!!

Задача.
Даны значения чисел [latex]n ,[/latex] [latex] a .[/latex]Вычислить\sum_{i=1}^{n}i\cdot a^{i}!!!!!!!!!!!!!!!!!!!!!!!!!!!

Тесты

Ввод: 3 2 6 4 10 2
Вывод: 36 504 1100

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

Вводим два числа [latex]n[/latex],[latex]a[/latex] и [latex]sum[/latex] . Задаем цикл и суммируем до тех пор, пока [latex] i [/latex]не будет равно значению [latex]n[/latex].

Ссылка на ideone

e-olymp 931 Отношение произведения к сумме

Задача:

Вычислить отношение произведения цифр натурального числа к их сумме.

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

Натуральное число [latex]n[/latex], не превышающее 2·109.

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

Вывести отношение произведения цифр числа [latex]n[/latex] к их сумме с 3 десятичными цифрами.

Тесты:

Входные данные Выходные данные
12345 8.000
5043 0.000
45 2.222

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

Алгоритм:
Для решения поставленной задачи нам нужно выделить отдельные цифры в записи данного числа, чтобы сосчитать их произведение и сумму. Воспользуемся циклом while. С помощью остатка от деления числа на 10 получаем последнюю цифру текущего числа, затем делим это число на 10. Получившиеся значения произведения и суммы цифр данного числа разделим, предварительно воспользовавшись явным преобразованием к типу [latex]double[/latex], и присвоим получившееся значение переменной ratio. Ответ с тремя десятичными цифрами после точки выводим с помощью метода [latex]printf[/latex]

Задача на e-olymp.com

Решение на e-olymp.com

Код программы на ideone.com

e-olymp 109. Numeration

Задача взята с сайта e-olymp.com.

Условие

Для нумерации M страниц книги использовали N цифр. По заданному N вывести M или 0, если решения не существует. Нумерация начинается с первой страницы.

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

Единственное число N. В книге не более 1001 страницы.

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

Искомое количество страниц.

Тесты :

N 8 21 22 113 999 1001
M 8 15 0 61 369 0

Код на Java:

Ход решения:

Принимаем исходное количество страниц M как 1.
В зависимости от M, вычитаем необходимое количество цифр из N:

Далее проверяем условие выхода. Если при этом мы получили отрицательное значение N, значит, исходное его значение также было неверным, тогда количеству страниц присваиваем 0:

Выйдя из цикла, выводим M:

Ссылки:

Рабочий код для тестирования на Ideone.com: Ideone.com