Var
День,месяц:byte;
Begin
Write('№ дня = ');ReadLn(День)
Var C: = 365 - День
Write('№ месяца = ');ReadLn(Месяц);
Case Месяц of
2:C:=C-31;
3:C:=C-59;
4:C:=C-90;
5:C:=C-120;
6:C:=C-151;
7:C:=C-181;
8:C:=C-212;
9:C:=C-243;
10:C:=C-273;
11:C:=C-304;
12:C:=C-334
End;
if (C mod 100>10)and(C mod 100<20) then Write('До нового года осталось ',C,' дней')
else
Case C mod 10 of
1:Write('До нового года остался ',C,' день');
2..4:Write('До нового года осталось ',C,' дня');
0,5..9:Write('До нового года осталось ',C,' дней')
End
End.
1. Минимальное основание системы счисления на единицу больше значения самой большой из использованных в записи чисел цифр. Здесь самая большая цифра 5, поэтому основание системы 6.
2. Сумма 10₁₆+11₈+10₄ нужна в системе счисления по основанию 2. Все основания систем счисления кратны двойке, поэтому перед сложеним проще всего все слагаемые привести к двоичной системе.
16 = 2⁴, поэтому каждая цифра в системе счисления по основанию 16 заменяется четырьмя двоичными: 10₁₆ = 0001 0000₂ = 10000₂
8 = 2³, поэтому каждая цифра в системе счисления по основанию 8 заменяется тремя двоичными: 11₈ = 001 001₂ = 1001₂
4 = 2², поэтому каждая цифра в системе счисления по основанию 4 заменяется двумя двоичными: 10₄ = 01 00₂ = 100₂
А теперь складываем цифры "в столбик"
10000
1 001
100
1 1 1 01₂
3. Обратим внимание, что каждое слагаемое на единицу меньше двух в степени 1, 2, 3, ..10. Очевидно, что их сумма находится между 2¹⁰+1 и 2¹¹-1. Поскольку 2¹¹ - это единица в 12-м разряде, число 2¹¹-1 требует для запими 11 разрядов. Это и есть искомое количество цифр - 11.