e-olymp 9. N-значные числа

Задача

Найти количество $N$-значных чисел, у которых сумма цифр равна их произведению. Вывести наименьшее среди таких чисел для заданного $(N<10).$

Вводные данные

Число не превышающее $N.$

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

В выходном файле через пробел вывести $2$ числа: количество искомых чисел и наименьшее среди них.

Тесты

Входные данные Выходные данные
$1$ $10$ $0$
$2$ $1$ $22$
$4$ $12$ $1124$
$5$ $40$ $11125$
$9$ $144$ $111111129$

Код программы(Цикл)

Решение задачи(Цикл)

Для cлучаев, когда $N=1,$ $N=8$ и $N=9$ сделаем отдельные ситуации и выведем сразу результат, т.к. эти значения долго считаются в основном цикле. Для случаем, когда $1<N<8$ создадим цикл, который создает последовательность $N$-значных чисел. Затем в цикле while (number &gt; 0) считаем сумму и произведение цифр каждого числа из последовательности. Если сумма и произведение равны и переменная minNumberPrinted равна false, (т.e. не найдено еще минимальное число из этой последовательности, что его сумма и произведение цифр равны), то переменной minNumber присвоим минимальное найденное число. Иначе, если сумма и произведение цифр числа равно, просто прибавляем счетчику $1.$ Выводим полученный результат. Задача решена.

Код программы (Массив)

Решение задачи(Массив)

Для решения задачи заранее просчитали все ответы и записали их в массив x. Так как ответы идут подряд составили формулу для вывода искомых значений: для количества чисел у которых сумма цифр совпадает с их произведением — $2n-2,$ для минимального числа — $2n-1.$ Задача решена.

Ссылки

Условие задачи на e-olymp
Код решения 1 на ideone.com (цикл)
Код решения 1 на ideone.com (массив)

e-olymp 3609. Стартовая скорость

Задача

Женская олимпийская сборная Украины в эстафете 4×100 метров на олимпийских играх в Лондоне в составе (Кристина Стуй, Олеся Повх, Елизавета Брызгина, Мария Ремень)

Несмотря на то, что женская сборная Украины в эстафете $4\times 100$ метров на олимпийских играх в Лондоне в составе Кристины Стуй, Олеси Повх, Елизаветы Брызгиной и Марии Ремень выступила очень достойно и завоевала бронзовые медали, подобная мысль назойливо мучила и программиста Васю.

Как показали тщательные экспериментальные проверки, модель, построенная им в задаче «Крейсерская скорость» оказалась не совсем точной. Многочасовые наблюдения, проведённые им на тренировках как украинских спортсменок, так и спринтеров из других стран, показали, что некоторые спортсмены во время старта разгоняются, а некоторые притормаживают. Но всё равно, после $25$ стартовых метров дистанции они движутся далее равномерно.

Феномен с «притормаживанием» Васе удалось с точки зрения физики пояснить довольно просто. Во время старта каждый из спортсменов имеет некоторую стартовую скорость, приобретённую в результате мощного отталкивания от стартовых колодок. Эта скорость может быть либо меньше «крейсерской», либо больше. В первом случае спортсмену нужно работать над наращиванием мышц ног для увеличения силы отталкивания. Во втором – мышцы уже наращены, но в результате того, что сила сопротивления воздуха зависит от площади соприкосновения тела спортсмена с ним, во время распрямления спортсмена во время старта эта сила сопротивления возрастает и становится постоянной только после указанных выше $25$ стартовых метров дистанции.

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

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

Вводные данные

В единственной строке задано $2$ вещественных числа, разделённых единичным пробелом, соответственно результат спортсмена на дистанциях $100$ и $200$ метров.

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

В единственной строке выведите стартовую скорость спортсмена с точностью не менее $6$-ти знаков после запятой.

Тесты

Входные данные Выходные данные
$9.63$ $19.32$ $10.844104$
$9.77$ $19.59$ $10.606721$
$9.69$ $19.40$ $10.469771$
$10.02$ $20.12$ $10.548908$
$9.88$ $19.85$ $10.781564$

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

Комментарий к коду программы

Если использовать данный код программы, то имеем, что программа не будет проходить лимит по времени на сайте e-olymp. Тогда эта же задача с исходными ограничениями времени будет засчитываться, если использовать другой класс для ввода

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

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

Со школы знаем формулу скорости, $v = \frac{l}{t}.$ Найдем из неё $l=vt.$ Пусть $l_1$ и $l_2$ — это расстояния, на которых спортсмен бежит с «крейсерской» скоростью соотвественно на дистанциях в $100$ и $200$ метров, где $l_1 = l — l_p,$ где $l$ — это длина дистанции, а $l_p$ — длина разгона (известно из условия задачи). Аналогично для $l_2.$ Заменим $t$ на $t_1 — t_p,$ где — время, $t_1$ за которое спортсмен пробегает всю дистанцию, а $t_p$ — время разгона на первых $25$-ти метрах дистанции. Получаем формулы: $l_1 = v(t_1 — t_p)$ и $l_2 = v(t_2 — t_p).$ Из отношения этих формул $\frac{l_1}{l_2} = \frac{v(t_1 — t_p)}{v(t_2 — t_p)},$ найдем $t_p.$ Имеем, $t_p=\frac{l_1 t_2 — l_2 t_1}{l_2 — l_1}.$ Подставляем $l_1 = v(t_1 — t_p).$ Находим «крейсерскую» скорость спортсмена, $v = \frac{l_1}{t_1 — t_p}.$ Из уравнения равноускоренного движения $x = v_0 t \times \frac{at^2}{2},$ где $x = 25$ метров (длина разгона). Находим $v_0$ — это и есть стартовая скорость спортсмена. Для этого заменим $a$ на $\frac{v — v_0}{t_p}.$ Приводим подобные и выражаем $v_0$. В итоге получаем формулу стартовой скорости спортсмена, $v_0=\frac{50-vt_p}{t_p}$

Ссылки

Условие задачи на e-olymp
Код решения 1 на ideone.com
Код решения 2 на ideone.com