Ruby/Задачник: различия между версиями

Содержимое удалено Содержимое добавлено
/* Дан целочисленный массив. Вывести номер первого из тех его элементов, которые удовлетворяют двойному неравенству: A[0] < A[i] < A[-1]. Если таки…
м <source> -> <syntaxhighlight> (phab:T237267)
 
Строка 117:
'''Решение:'''
 
<sourcesyntaxhighlight lang=ruby>
a = [1, 2, 4, 5, 2, 1, 6, 11]
a.select.with_index { |_, index| index.even? } + a.select.with_index { |_, index| index.odd? }
# => [1, 4, 2, 6, 2, 5, 1, 11]
</syntaxhighlight>
</source>
 
Или так:
 
<sourcesyntaxhighlight lang=ruby>
a = [1, 2, 4, 5, 2, 1, 6, 11]
(a.partition.with_index { |_, index| index.even?}).flatten
# => [1, 4, 2, 6, 2, 5, 1, 11]
</syntaxhighlight>
</source>
 
=== Дан целочисленный массив. Необходимо вывести вначале его элементы с нечетными индексами, а затем - четными. ===
Строка 135:
'''Решение:'''
 
<sourcesyntaxhighlight lang=ruby>
a = [1, 2, 4, 5, 2, 1, 6, 11]
a.select.with_index { |_, index| index.odd? } + a.select.with_index { |_, index| index.even? }
# => [2, 5, 1, 11, 1, 4, 2, 6]
</syntaxhighlight>
</source>
 
=== Дан целочисленный массив. Вывести номер первого из тех его элементов, которые удовлетворяют двойному неравенству: A[0] < A[i] < A[-1]. Если таких элементов нет, то вывести [ ]. ===
Строка 145:
'''Решение:'''
 
<sourcesyntaxhighlight lang=ruby>
a = [1, 5, 2, 3, 4]
a.index(a.select { |num| a[0] < num && num < a[-1] }.first) || []
# => 2
</syntaxhighlight>
</source>
 
А можно и так:
 
<sourcesyntaxhighlight lang=ruby>
a = [1, 7, 4, 5, 2, 1, 6, 4]
a.index { |i| a[0] < i && i < a[-1] } || []
# => 4
</syntaxhighlight>
</source>
 
== Задачи Малого ЦКТ ГОУ МГИУ (подготовительные курсы) http://sctc.msiu.ru ==