Автомат получает на вход трёхзначное десятичное число. по полученному числу строится новое десятичное число по следующим правилам: 1)если число трехзначное,то удваивается его первая цифра(вместо первой цифры записывается её удвоенное значение),если четырехзначное,то вместо последней цифры записывается 1; 2)в полученном числе каждая цифра заменяется на предыдущую (1 заменяется на 0,2-на 1 и т. 0 заменяется на 9. незначащие нули в полученном числе отбрасываются.получившееся таким образом число является результатом работы автомата. например,из числа 327 на первом шаге будет получено число 627,на втором-516; из числа 5126 на первом шаге будет получено число 5121,на втором -4010; из числа 1326 на первом шаге будет получено число 210. определите сколько из ниже чисел могут получиться в результате работы автомата. 159 261 1916 1120 820 105 5100 9410

пацанизподворотни пацанизподворотни    2   24.08.2019 05:20    3

Ответы
mirst14 mirst14  05.10.2020 16:01
Код для проверки

def Avtomat(chislo)
    s = chislo.to_s

    if s.length == 4
        s = s[0..-2] + "1"
    end
    if s.length == 3
        s = (2*(s[0].to_i)).to_s + s[1..-1]
    end

    sym = [9,0,1,2,3,4,5,6,7,8]
    s_new = ""
    for k in 0..s.size - 1
        s_new += sym[s[k].to_i].to_s
    end

    return s_new.to_i
end

for i in 100..9999
    r = Avtomat(i)
    p [i,r] if [159, 261, 1916, 1120, 820, 105, 5100, 9410].include?(r)
end

Вывод
[116, 105]
[160, 159]
[616, 105]
[660, 159]
[1930, 820]
[1931, 820]
[1932, 820]
[1933, 820]
[1934, 820]
[1935, 820]
[1936, 820]
[1937, 820]
[1938, 820]
[1939, 820]
[2230, 1120]
[2231, 1120]
[2232, 1120]
[2233, 1120]
[2234, 1120]
[2235, 1120]
[2236, 1120]
[2237, 1120]
[2238, 1120]
[2239, 1120]
[6210, 5100]
[6211, 5100]
[6212, 5100]
[6213, 5100]
[6214, 5100]
[6215, 5100]
[6216, 5100]
[6217, 5100]
[6218, 5100]
[6219, 5100]

В перечисленное не попали числа 261 1916 9410

Но если брать что "Автомат получает на вход трёхзначное десятичное число", т.е 4 значные не подаются на вход то не войдут числа
261 1916 1120 820 5100 9410
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика