Форум » Обработка числовых последовательностей » 27 (C4) последний тренировочный вариант » Ответить

27 (C4) последний тренировочный вариант

mogl: var x, x_lng, i, cnt: integer; x_str, res_str: string; prev_is_1: boolean; function conv_1 (intg: integer) : string; var tmp: string; k: integer; begin conv_1 := ''; { не равно 1, так как последнюю в цикле, первую в двоичном числе единицу надо отбросить по условию конверсии } while (intg <> 1) do begin k := intg mod 2; str(k, tmp); conv_1 := conv_1 + tmp; intg := intg div 2; end; end; begin readLn(x); x_str := conv_1(x); x_lng := length(x_str); prev_is_1 := false; cnt := 0; res_str := ''; for i := 1 to x_lng do begin if(prev_is_1 = false) then begin if(x_str[ i ] = '0') then begin res_str := res_str + 'Е'; cnt := cnt + 1; end else prev_is_1 := true; end else begin if(x_str[ i ] = '0') then begin res_str := res_str + 'Р'; end else begin res_str := res_str + 'А'; cnt := cnt + 1; end; prev_is_1 := false; end; end; writeLn(res_str); writeLn(cnt); end. Вроде работает, хотя не запутаться с таким количеством блоков было сложно...

Ответов - 0



полная версия страницы