Расшифровать ребус (6 * Город = Страна) - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Расшифровать ребус, полученный в результате замены одинаковых букв одинаковыми цифрами. Найти также такие значения цифр, при которых сумма цифр в результате окажется наибольшей. город+город+город+город+город+город=страна
И еще: Д=А

Решение задачи: «Расшифровать ребус (6 * Город = Страна)»

textual
Листинг программы
var
  g, o, r, d, s, t, n: integer;
  max, maxs, maxt, maxr, maxd, maxn: integer;
  m: set of byte;
 
begin
  m := [];
  for g := 1 to 9 do
    if not (g in m) then
    begin
      Include(m, g);
      for o := 0 to 9 do
        if not (o in m) then
        begin
          Include(m, o);
          for r := 0 to 9 do
            if not (r in m) then
            begin
              Include(m, r);
              for d := 0 to 9 do
                if not (d in m) then
                begin
                  Include(m, d);
                  for s := 0 to 9 do
                    if not (s in m) then
                    begin
                      Include(m, s);
                      for t := 1 to 9 do
                        if not (t in m) then
                        begin
                          Include(m, t);
                          for n := 0 to 9 do
                            if not (n in m) then
                            begin
                              Include(m, n);
                              if 6 * (g * 10000 + o * 1000 + r * 100 + o * 10 + d) = s * 100000 + t * 10000 + r * 1000 + d * 100 + n * 10 + d then
                              begin
                                if s + t + r + d + n + d > max then
                                begin
                                  max := s + t + r + d + n + d;
                                  maxs := s; maxt := t;
                                  maxr := r; maxd := d;
                                  maxn := n
                                end;
                                WriteLn('6 * ', g, o, r, o, d, ' = ', s, t, r, d, n, d)
                              end;
                              Exclude(m, n)
                            end;
                          Exclude(m, t)
                        end;
                      Exclude(m, s)
                    end;
                  Exclude(m, d)
                end;
              Exclude(m, r)
            end;
          Exclude(m, o)
        end;
      Exclude(m, g)
    end;
  WriteLn('Значения цифр, при которых сумма цифр в результате наибольшая:');
  WriteLn('С = ', maxs, '; Т = ', maxt, '; Р = ', maxr, '; А = ', maxd, '; Н = ', maxn);
  ReadLn
end.

Объяснение кода листинга программы

  1. В коде используется язык программирования Free Pascal.
  2. Задача кода - расшифровать ребус (6 * Город = Страна).
  3. В коде создается множество (set) для хранения уникальных цифр от 0 до 9.
  4. Используется цикл for для перебора всех возможных комбинаций цифр от 1 до 9 для переменной g.
  5. Для каждой комбинации цифр от 1 до 9 для переменной g проверяется, можно ли составить комбинацию цифр для переменной s, используя данное значение переменной g.
  6. Если возможно, то проверяется, можно ли составить комбинацию цифр для переменной t, используя данное значение переменной s.
  7. Если возможно, то проверяется, можно ли составить комбинацию цифр для переменной r, используя данное значение переменной t.
  8. Если возможно, то проверяется, можно ли составить комбинацию цифр для переменной d, используя данное значение переменной r.
  9. Если возможно, то проверяется, можно ли составить комбинацию цифр для переменной n, используя данное значение переменной d.
  10. Если все комбинации цифр от 0 до 9 для переменных g, s, t, r, d, n возможны, то выводится сообщение с соответствующими значениями переменных.
  11. Если найдена комбинация цифр с наибольшей суммой цифр, то выводятся значения переменных maxs, maxt, maxr, maxd, maxn.
  12. В конце кода запрашивается ввод с клавиатуры для продолжения работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5