Автомат получает ** вход трёхзначное десятичное число. По полученному числу строится...

0 голосов
102 просмотров

Автомат получает на вход трёхзначное десятичное число. По полученному числу строится новое десятичное число по следующим правилам.
1. Вычисляются два числа – сумма старшего и среднего разрядов, а также сумма среднего и младшего разрядов заданного числа.
2. Полученные два числа записываются друг за другом в порядке не возрастания (без разделителей).
Пример. Исходное число: 277. Поразрядные суммы: 9, 14. Результат: 149.

Определите, сколько из приведённых ниже чисел могут получиться в результате работы автомата.1212 129 123 1218 1812 312 912 112
В ответе запишите только количество чисел...

Поясните ответ,заранее спасибо)))


Информатика (29 баллов) | 102 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Из чего что получается, при пробежке от 100 до 999
[184, 129]
[275, 129]
[366, 129]
[390, 129]
[399, 1812]
[457, 129]
[481, 129]
[548, 129]
[572, 129]
[639, 129]
[663, 129]
[754, 129]
[845, 129]
[920, 112]
[930, 123]
[936, 129]
[993, 1812]

Общее кол-во
{129=>13, 123=>1, 1218=>0, 1812=>2, 312=>0, 912=>0, 112=>1}

Ответ 4 числа

Код
def Avtomat2(chislo)
    return 0 if !chislo.between?(100, 999)

    s = chislo.to_s
    a = s[0].to_i + s[1].to_i
    b = s[1].to_i + s[2].to_i
    s = [a, b].max.to_s + [a, b].min.to_s

    return s.to_i
end

def zadanie(min, max, numbers)
    b = Hash.new
    numbers.each do |w|
        b.store(w, 0)
    end

    for i in min..max
        r = Avtomat2(i)
        if numbers.include?(r)
            p [i,r]
            b[r] += 1
        end
    end
    return b
end

# # # Примеры применения
p zadanie(100, 999, [129, 123, 1218, 1812, 312, 912, 112])


(55.0k баллов)