А57в

Задача

Дано действительное число $ a $. Вычислить $ f\left(a\right) $, если
$ f\left(x\right) = \begin{cases} 0, x \leq 0 \newline
x, 0 \ < x \leq 1 \newline x^4, x > 1 \end{cases} $

Входные данные
Действительное число $ a $.

Выходные данные
Значение $ f\left(a\right) $.

График функции:
График

Тесты

Входные данные Выходные данные
1 -42 0
2 0.5 0.5
3 3 81

Решение
Находим промежуток, которому принадлежит заданное $ a $. Если $ a \in \left(-\infty; 0\right] $, то $ f(a) = 0$. Иначе если $ a \in \left(0; 1\right] $, то $ f(a) = a$. Иначе $ f(a) = a^4$

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

Ссылка на tryhaxe

 

Ю2.16 Кратные пары

Условие

Среди заданных целых чисел [latex]k, l, m[/latex] найти пары кратных.

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

Целые числа [latex]k,l,m[/latex].

[latex]\left | k,l,m \right |< 2\cdot 10^{9} [/latex]

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

Пары чисел, одно из которых является кратным другого.

Тесты

 Входные данные Выходные данные
1.  1 2 3  1 2

1 3

2.  0 2 4 2 4
3. 1 2 6 1 2

1 6

2 6

4.  5 5 2  5 5
 5.  0 0 3
6. 2 5 3
7. -10 5 2

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

Решение

Хотя свойство делимости определено на всём множестве целых  чисел, обычно рассматривается лишь делимость натуральных  чисел.

Кратное натурального числа [latex]b[/latex] — это натуральное число [latex]a[/latex],  которое делится на [latex]b[/latex] нацело. Наименьшим кратным данного числа является само это число.

Код на try.haxe.org

А58б. Нахождение значения функции

Ссылка на оригинальную статью
Задача. Дано действительное число $a$.Для функций $f(x)$, графики которых представлены на рис.
Вычислить $f(a)$

 

Решение.
На графике функции указано, чему равна $f(x)$ на каждом участке. В данной программе мы по очереди проверяем, какому из них принадлежит $f(a)$ и выбираем соответствующую формулу для расчёта $y$. Поскольку участков всего три, достаточно проверить, принадлежит ли точка к двум из них. Ели нет, то она, очевидно, лежит на третьем.

Решение на Try Haxe!

Mif 17.16. Пакман

Условие

Принадлежит ли точка $(x,y)$ фигуре на рисунке?

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

Тесты

  Входные данные Выходные данные
1 0 0 YES
2 -6 0 YES
3 5.0 -2.0 YES
4 -3.33 -5 NO
5 0.12345 0.54321 NO

Код

Решение

В основе заданной фигуры лежит круг с радиусом $6$ и центром в начале системы координат $(0,0)$, из которого исключена первая четверть. Таким образом, нам нужно удостовериться, что положение заданной точки одновременно удовлетворяет следующим условиям:

  • точка расположена в пределах круга, то есть сумма квадратов координат $x^{2}+y^{2}$ меньше или равна квадрату радиуса $6^{2}=36$;
  • хотя бы одна из координат точки $(x,y)$ не превышает значения $0$ (другими словами, точка не лежит в первой четверти).

Если оба условия соблюдены, точка принадлежит фигуре. В противном же случае — нет. Такую проверку и последующий вывод ответа можно записать с помощью единственной тернарной операции:

Ссылки

Try Haxe
Ссылка на условие задания: cpp.mazurok.com

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:» (без кавычек), а далее через пробел сначала меньший, а потом больший корень. Гарантируется, что в случае наличия решений все корни целочисленные.

Тесты

 Входные данные Выходные данные
 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», если их нет.

 

e-olymp 4. Two circles

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

Условие

Определить количество точек пересечения двух окружностей.

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

Шесть чисел: $x_1$, $y_1$, $r_1$, $x_2$, $y_2$, $r_2$, где $x_1$, $y_1$, $x_2$, $y_2$ — координаты центров окружностей, а $r_1$, $r_2$ — их радиусы. Все числа — действительные, не превышают $10^9$, заданы не более чем с тремя знаками после запятой.

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

Количество точек пересечения. Если точек пересечения бесконечно много, то вывести $-1$.

Тесты:

$X_1$ $Y_1$ $R_1$ $X_2$ $Y_2$ $R_2$ $N$
0 0 5 5 0 1 2
0 0 5 0 0 6 0
0 1 6 0 3 6 2

Код на Haxe:

Ход решения:

Высчитываем расстояние между центрами окружностей по формуле: $Range = \sqrt{(X_2-X_1)^2+(Y_2-Y_1)^2}$ (храниться и обрабатываться оно будет в квадрате). Вычисление в одну строку:

Далее рассчитываем сумму радиусов окружностей (также в квадрате).
Если центры совпадают ($Range = 0$) и длины радиусов равны, значит, совпадают и окружности:

Если расстояние между окружностями равно сумме радиусов, окружности имеют одну общую точку, касаясь друг друга снаружи. Также одна из окружностей может лежать внутри другой и касаться ее изнутри:

Если расстояние между окружностями превышает сумму радиусов, это значит, что они не пересекаются. Также одна окружность может лежать внутри другой, но не касаться ее:

В остальных случаях окружности пересекаются и имеют две общие точки:

Примечание: Входные данные для тестирования были заданы программно из-за определенных затруднений в использовании стандартного ввода в онлайн-среде try.haxe.org.

Ссылки:

Рабочий код для тестирования на try.haxe.org: Try Haxe !

A57в

Условие
Дано действительное число $a$. Вычислить $f(a)$ если $f(x)=\left\{\begin{matrix} 0, x\leq 0 \\ x, 0< x\leq 1\\ x^{4}, x> 1 \end{matrix}\right.$

Входные данные
Действительное число $a$.

Выходные данные
$0$ — если $a\leq 0$
$a$ — если $0 < a \leq 1$
$a^{4}$ — если $a > 1$

Тесты

Входные данные Выходные данные
-12.07 0
0.75 0.75
2.0 16.0

Решение
Вводим число $a$. Проверяем условие $a\leq 0$, если выполняется, то выводим $0$, оначе проверяем следующее условие $0 < a \leq 1$, если выполняется, то выводим $a$, иначе выводим $a^{4}$.

Try Haxe !

e-olymp 126. Номер квартиры

Ссылка на условие задания: e-olymp.com

Условие

Многоквартирный дом имеет $N$ квартир, $P$ подъездов и $Q$ этажей, причем на каждом этаже каждого подъезда имеется одинаковое количество квартир. Определить в каком подъезде и на каком этаже находится квартира с заданным номером.

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

Значения $N$, $P$, $Q$, $K$, причем [latex]1 \leq K \leq N \leq 1000[/latex], [latex]P \cdot Q \leq N[/latex].

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

Нужно вывести номер подъезда и этаж, на котором находится квартира с номером $K$.

Тесты

Входные данные Выходные данные
250 5 5 1 1 1
30 2 5 27 2 4
300 3 10 111 2 2
80 5 4 77 5 4

Код.

Try Haxe!

А34а. Максимум из трёх

Задача.

Даны действительные числа  [latex]x, y, z[/latex]. Получить  [latex]\max\left\{x,y,z \right\}[/latex].

Код:

Решение.

  1. Как известно, для любых чисел  [latex] x,y \in \mathbb{R} [/latex]    [latex] \max\left\{x,y \right\} = x,[/latex]  если  [latex] x \geq y[/latex], и  [latex] \max\left\{x,y \right\} = y,[/latex]  в противном случае.
  2. Нетрудно доказать, что  [latex] \forall x,y,z \in \mathbb{R} [/latex]    [latex] \max\left\{x,y,z \right\}=\max\left\{\max\left\{x,y \right\},z \right\}[/latex]
  3. С учётом замечания  1 проверим неравенство   [latex] x > y[/latex] и если оно выполняется, перенаправим поток на вывод [latex] \max\left\{x,z \right\}[/latex]. В противном случае, на вывод [latex] \max\left\{y,z \right\}[/latex]

Ссылка на решение задачи.

Cсылка на условие задачи.