MLoop 9

Условие

Вычислите с точностью [latex]\varepsilon[/latex] значение функции [latex]f\left( x \right) = \text{sh}x[/latex]. При вычислениях допустимо использовать только арифметические операции.

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

В одной строке задано два числа [latex]x[/latex] и [latex]E[/latex].

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

В одной строке вывести значение функции [latex]f\left( x \right) = \text{sh}x[/latex] и [latex]\text{sinh}x[/latex] (для проверки).
[latex]\text{sh} \left( x \right) = x — \frac {x^{3}}{3!}+\frac{x^{5}}{5!} — \cdots = \displaystyle\sum_{n=0}^{\infty}\frac{1}{(2n+1)!}x^{ 2n+1 },x\in{C}[/latex]

Тесты

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

(мои и стандартной функции)

1.57 1e-10000 2.2993 2.2993
3.14 1e-100000 11.5303 11.5303
0 0.1 0 0
1.05 1e-1000 1.25386 1.25386
0.785 0 0.868144 0.868144
0.52 0.01 0.543435 0.543754

Код

Решение

Для того чтобы найти с точностью значение функции, в данном варианте это [latex]f\left( x \right) = \text{sh}x[/latex] — гиперболический синус, надо воспользоваться рядом Тейлора. Находим следующий член ряда Тейлора и прибавляем к функции и так пока не дойдем до члена, который будет меньше, либо равен точности. Чтобы проверить на правильность наших вычислений можно воспользоваться уже готовой функцией нахождения гиперболического синуса [latex]\text{sinh}x[/latex].
Код программы

Related Images:

MLoops 18

Условие

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

1123581321345589144233377
1235813213455891442333776
2358132134558914423337761
3581321345589144233377610
5813213455891442333776109

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

В одной строке задано два числа [latex]n[/latex] и [latex]m[/latex].

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

Вывести таблицу размерностью [latex]n\times m[/latex].

Тесты

Входные данные Выходные данные
1 1  1
2 2  
5 5
9 18
25 5

Код

Решение

Несложно догадаться что данная последовательность чисел это числа Фибоначчи. Для того чтобы построить таблицу надо сначала найти числа Фибоначчи (у меня это — [latex]a,b,c[/latex]), после печатаем их в строку далее переходим на новую строку и начинаем со 2 элемента относительно предыдущей строки это выполняет функция [latex]h[/latex], и так пока [latex]i \le m[/latex]. Но может возникнуть проблема с выходом за предел строки и для того чтобы этого не произошло нам нужны функции [latex]f[/latex], которая возводит 10 в заданную степень, это нам надо чтобы отрезать то что выходит за предел строки, для этого используем целочисленное деление на 10 в нужной степени,  и [latex]g[/latex], которая считает количество цифр в данном числе Фибоначчи, для того чтобы определить в какую степень нам надо возвести 10, чтобы оставить только ту часть что не выходит за предел строки.
Код программы

Related Images:

e-olymp 127. Баксы в банке

Условие

Папа Карло подарил Буратино [latex]1[/latex] доллар в его первый день рождения, а экономный Буратино сложил подарок в банку. Каждый последующий год папа Карло удваивал свой предыдущий подарок и прибавлял к нему столько долларов, сколько лет исполнилось Буратино, а тот в свою очередь продолжал складывать баксы в банку. На какой [latex]N[/latex]-й день рождения в банке будет не менее чем [latex]S[/latex] долларов?

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

Единственное число — значение [latex]S[/latex]. [latex]1\le S \le 240[/latex].

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

Искомое значение [latex]N[/latex].

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

Тесты

Входные данные Выходные данные
15 3
25 4
9 3
99 5
199 6
333 7
56 5
478 8
809 8

Код

Решение

В данной задаче [latex]sum[/latex] — сколько долларов в банке, [latex]p[/latex] — сколько долларов Папа Карло подарил Буратино. Пока [latex]sum<s[/latex] мы увеличиваем [latex]N[/latex] на [latex]1[/latex] и считаем сколько Папа Карло подарит Буратино [latex]p=p\cdot 2+n[/latex] и суммируем его с тем что лежит в банке [latex]sum=sum+p[/latex] или же как у меня что одно и тоже [latex]sum += p[/latex]. После этого выводим [latex]N[/latex].
Код программы
Засчитанное решение

Related Images:

Mif 17.6

Условие

Принадлежит ли точка [latex](x;y)[/latex] фигуре на рисунке?
17_6

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

В одной строке задано два числа — координаты точки [latex](x;y)[/latex].

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

В одной строке вывести «YES»(без кавычек), если точка принадлежит фигуре, или «NO»(без кавычек), если нет.

Тесты

Входные данные Выходные данные
-3.5 2.5 NO
-1.5 2.5 YES
-2 5 YES
5 5 NO
-3 -1 NO
1 4 YES
3.3 4.4 YES
1.6 -3 NO
-4 2.2 NO

Код

Решение

В данной задаче я разбил фигуру на два прямоугольника и проверяю входят ли абсцисса и ордината данной точки в промежутки [latex]x=[-2;3]; y=[2;5][/latex](для большого прямоугольника) и [latex]x=(3;5]; y=[2;3][/latex](для маленького прямоугольника), если точка входит, то значит она принадлежит. В противном случае — нет.
Код программы

Related Images:

Mif 6

Условие

Даны действительные числа [latex]x[/latex], [latex]y[/latex], [latex]z[/latex]. Могут ли они быть длинами сторон некоторого треугольника?

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

В одной строке задано три числа [latex]x[/latex], [latex]y[/latex] и [latex]z[/latex].

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

В одной строке вывести «YES»(без кавычек), если являются длинами некоторого невырожденного треугольника, или «NO»(без кавычек), если нет.

Тесты

Входные данные Выходные данные
1e1000 1e10000 1e-1000 NO
1e100 1e100 1e-100 YES
15.4 6.9 18.3 YES
17.55 37.67 88.98 NO
1000000 200000 30000 NO
1000000 1200000 900000 YES
3 4 5 YES
9 4 3 NO
99 10 47 NO

Код

Решение

Для того чтобы определить могут ли быть числа длинами некоторого треугольника надо использовать неравенство треугольника, если числа удовлетворяют неравенству, то значит могут быть длинами. В противном случае — нет.
Код программы

Related Images:

ML6

Условие

Даны катеты прямоугольного треугольника. Найти его гипотенузу и площадь.

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

В одной строке задано два числа — катеты прямоугольного треугольника соответственно [latex]a[/latex] и [latex]b[/latex]. Значения катетов не превышают по модулю [latex]100[/latex].

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

В одной строке через пробел вывести гипотенузу и площадь данного прямоугольного треугольника с 2 знаками после запятой.

Тесты

 Входные данные  Выходные данные
 3 4  5.00 6.00
 10 10  14.14 50.00
 50 90  102.96 2250.00
 1 1  1.41 0.50
 9 99  99.41 445.50
 12 16  20.00 96.00
 9 12  15.00 54.00
 25 50  55.90 625.00
 56 42  70.00 1176.00

Код

Решение

Каждый в школе узнает как найти гипотенузу и площадь прямоугольного треугольника. Для того чтобы найти гипотенузу надо использовать теорему Пифагора [latex]c^2=a^2+b^2\rightarrow\sqrt(a^2+b^2)[/latex], а для нахождения площади — формулу [latex]a\cdot b/2[/latex].
Код программы

Related Images:

e-olymp 911. Квадратное уравнение

Условие

Составить программу для решения квадратного уравнения [latex]ax^2 + bx + c = 0[/latex] [latex](a\neq0)[/latex].

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

В одной строке задано три целых числа — коэффициенты квадратного уравнения соответственно [latex]a[/latex], [latex]b[/latex] и [latex]c[/latex]. Значения коэффициентов не превышают по модулю [latex]100[/latex].

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

В одной строке вывести в случае отсутствия корней сообщение «No roots» (без кавычек), в случае, если решение содержит один корень вывести сначала сообщение «One root:» (без кавычек), а далее через пробел сам корень, в случае наличия двух корней вывести сначала сообщение «Two roots:» (без кавычек), а далее через пробел сначала меньший, а потом больший корень. Гарантируется, что в случае наличия решений все корни целочисленные.

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

Тесты

 Входные данные Выходные данные
 1 -5 6  Two roots: 2 3
 1 10 25  One root: -5
 1 2 3  No roots
 2 6 7  No roots
 1 -2 1  One root: 1
 2 -9 4  Two roots: 0 4
 3 10 -8  Two roots: -4 0
 1 6 9  One root: -3
 3 -7 10  No roots

 

Код

Решение

Каждый в школе в классе 7 узнает как решать квадратное уравнение. Для того чтобы его решить надо сначала найти дискриминант: [latex]d=(b\cdot b)-(4\cdot a\cdot c)[/latex], а потом подставить его в следующие формулы для нахождения корней квадратного уравнения: [latex]x1=(-b+\sqrt d)/(2\cdot a)[/latex] и [latex]x2=(-b-\sqrt d)/(2\cdot a)[/latex]. Однако для квадратного уравнения существует 3 варианта ответов зависящие от дискриминанта. Все 3 варианта расписаны в if-блоках, где сначала проверяется дискриминант и от его значения уже определяется сколько корней у нас будет. После этого выводятся корни, гарантированно целочисленные, или надпись «No roots», если их нет.
Код программы
Засчитанное решение

Related Images: