Запись некоторого натурального числа Х в шестнадцатеричной системе счисления имеет ровно...

0 голосов
50 просмотров

Запись некоторого натурального числа Х в шестнадцатеричной системе счисления имеет ровно три значащих разряда. Это число увеличили в два раза, и оказалось, что запись получившегося числа У в шестнадцатеричной системе также имеет ровно три значащих разряда, причем сумма цифр шестнадцатеричной записи исходного числа Х равна сумме цифр шестнадцатеричной записи полученного числа У. Сколько существует таких чисел Х,
которые удовлетворяют указанным условиям и при этом содержат хотя бы одну цифру 2 в своей шестнадцатеричной записи? В ответе укажите целое число.


Сделайте пожалуйста на Паскале ABC


Информатика (49 баллов) | 50 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Var
  n, k, d2, d1, d0: integer;
  e2, e1, e0: integer;

procedure GetDigits(m: integer; var d2, d1, d0: integer);
{Перевод числа [100..FFF]в 16-ю систему счисления}
begin
  d0 := m mod 16;
  m := m div 16;
  d1 := m mod 16;
  d2 := m div 16
end;

begin
  n := 0;
  {Рассматриваем шестнадцатиричные числа от 100 до 7FF}
  for k := $100 to $7FF do
  begin
    GetDigits(k, d2, d1, d0);
    if (d2 = 2) or (d1 = 2) or (d0 = 2) then
    begin
      GetDigits(2 * k, e2, e1, e0);
      if d0 + d1 + d2 = e0 + e1 + e2 then n := n + 1
    end
  end;
  writeln('n=', n)
end.

Тестовое решение:

n=23


(142k баллов)