Program Ulitka; Var SunnyDay: Array [1..30] Of Boolean; a, b, c, i: Integer; Begin WriteLn('a = '); ReadLn(a); WriteLn('b = '); ReadLn(b); b := b * 100; Randomize; For i := 1 To 30 Do Begin If Random(2) = 1 Then SunnyDay[i] := True Else SunnyDay[i] := False; End; For i := 1 To 30 Do Begin If SunnyDay[i] = True Then Begin a := a + 2; If a > b Then a := b; End Else Begin a := a - 1; If a < 0 Then a := 0; End; End; WriteLn('Дни месяца были таковы:'); For i := 1 To 30 Do Begin If SunnyDay[i] = True Then WriteLn(i, '. Солнечный') Else WriteLn(i, '. Пасмурный') End; WriteLn('К концу 30 дня местоположение улитки равно ', a, ' см над землей'); ReadLn; End.
Удобнее всего решать с использованием промежуточной двоичной системы, поскольку 16=2⁴, в 8=2³. В силу этого каждая шестнадцатиричная цифра изображается четырьмя битами (тетрадой), а каждая восьмеричная - тремя (триадой). Заменим неизвестные биты символом Х. 1010₁₆ = ХХХ ХХ1 010₈ Запишем изображения битов друг под другом с учетом известной нам информации. Х Х Х Х 1 0 1 0 Х Х Х Х Х 1 0 1 0 Теперь известные биты в конце чисел можно отбросить Х Х Х Х Х Х Х Х Х Очевидно, во втором (восьмеричном числе первый бит нулевой, поскольку оба числа в двоичной записи одинаковы и остается только ₂. Эти четыре бита (обозначим их IJKL) могут дать 16 комбинаций. Но требование, чтобы восьмеричное число имело три цифры, старшая из которых не может быть нулем, запрещает комбинацию IJ=00, поэтому 4 комбинации из 16 надо вычеркнуть. Останется 12.
никакая XD
Объяснение:
CXDXDXDXDXDXDXDXDXD