Возможны 3 варианта решения задачи, разные по степени творческого подхода. Решение №1 (элементарное) При оформлении этого решения количество ламп в сигнале фиксировано и равно количеству всех цветных ламп. Решение №2 (стандартное) При оформлении решения последовательно учитывается то что сигнал может состоять из 1 лампы, из двух ламп, из трех и т.д. ламп. В этом подходе решение, описанное ранее, является частным случаем. Решение №3 (комплексное)При оформлении этого решения учитывается то что лампа может гореть, а может не гореть и тогда важен не только порядок и количество ламп в сигнале, но и положение лампы в общем ряду. Замечание: Основная нагрузка в решении сводится к наиболее полному описанию возможных вариантов сигналов и вычислению их количества.
// PascalABC.NET 3.2, сборка 1362 от 14.12.2016 // Внимание! Если программа не работает, обновите версию!
begin var s:=ReadlnString('>'); var p:=s.Select((x,i)->(x,i+1)).Where(x->x[1].IsOdd and (x[0]=' ')); Writeln('Число пробелов на начетных местах равно ',p.Count); foreach var t in p do s[t[1]]:='*'; Writeln(s) end.
Пример > А роза упала на лапу Азора Число пробелов на начетных местах равно 3 А роза*упала*на лапу*Азора
// PascalABC.NET 3.2, сборка 1362 от 14.12.2016 // Внимание! Если программа не работает, обновите версию!
begin var s:=ReadlnString('>'); var n:=s.Length; if n mod 4<>0 then Writeln('Кол-во символов не кратно 4') else begin var i:=1; repeat Swap(s[i],s[i+3]); Swap(s[i+1],s[i+2]); i+=4 until i>n; Writeln(s) end end.
а= 80
Объяснение:
b:=6+3*8. (30)
a:=30/3*8
a=80