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

nasta086 nasta086    3   09.06.2019 18:10    6

Ответы
Артём0Болдырев Артём0Болдырев  08.07.2020 12:28
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
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика