Назовем билет с шестизначным номером красивым, если его номер одинаково читается как слева направо, так и справа налево. Сколько красивых билетов в промежутке от 189980 до 205505. а) 16 б) 17 в) 32 г)15525
# # Код на ruby 2.2.3p173 count = 0 for i in 0..9 for j in 0..9 for k in 0..9 num = i*10**5+j*10**4+k*10**3+k*10**2+j*10**1+i*10**0 count+=1 if num.between?(189980,205505) end end end p count
ответ 17
2 votes Thanks 0
Aillianna
оптимизация нужна если скрипт считается медленно. И мало ли вдруг в подобных задачах встретятся другие ограничения, лучше писать универсальный код
Aillianna
Это информатика, потому скорее всего требуется программное решение, а не аналитическое. Да я не настаиваю что это самый оптимальный код, но вполне понятный, чем например операции со строками
petyaGavrikov
Со всем сказанным можно согласиться. Однако, если всё-таки немного вникнуть в задачу, а также обратить внимание на то, что это тестовый вопрос с вариантами ответов, то можно с вероятностью очень близкой к 1 :), считать, что школьники здесь должны получить ответ без написания программы. И если стоит задача научиться решать подобные задания, то всё-таки рассуждения здесь более предпочтительны. Если же главное - правильную цифру написать, то, конечно, любой способ подойдет.
Aillianna
Я бы тесты только программами и решала. А им что не разрешают?
Answers & Comments
Verified answer
# # Код на ruby 2.2.3p173count = 0
for i in 0..9
for j in 0..9
for k in 0..9
num = i*10**5+j*10**4+k*10**3+k*10**2+j*10**1+i*10**0
count+=1 if num.between?(189980,205505)
end
end
end
p count
ответ 17