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

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

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

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

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

textual
Листинг программы
  1. var
  2.   g, o, r, d, s, t, n: integer;
  3.   max, maxs, maxt, maxr, maxd, maxn: integer;
  4.   m: set of byte;
  5.  
  6. begin
  7.   m := [];
  8.   for g := 1 to 9 do
  9.     if not (g in m) then
  10.     begin
  11.       Include(m, g);
  12.       for o := 0 to 9 do
  13.         if not (o in m) then
  14.         begin
  15.           Include(m, o);
  16.           for r := 0 to 9 do
  17.             if not (r in m) then
  18.             begin
  19.               Include(m, r);
  20.               for d := 0 to 9 do
  21.                 if not (d in m) then
  22.                 begin
  23.                   Include(m, d);
  24.                   for s := 0 to 9 do
  25.                     if not (s in m) then
  26.                     begin
  27.                       Include(m, s);
  28.                       for t := 1 to 9 do
  29.                         if not (t in m) then
  30.                         begin
  31.                           Include(m, t);
  32.                           for n := 0 to 9 do
  33.                             if not (n in m) then
  34.                             begin
  35.                               Include(m, n);
  36.                               if 6 * (g * 10000 + o * 1000 + r * 100 + o * 10 + d) = s * 100000 + t * 10000 + r * 1000 + d * 100 + n * 10 + d then
  37.                               begin
  38.                                 if s + t + r + d + n + d > max then
  39.                                 begin
  40.                                   max := s + t + r + d + n + d;
  41.                                   maxs := s; maxt := t;
  42.                                   maxr := r; maxd := d;
  43.                                   maxn := n
  44.                                 end;
  45.                                 WriteLn('6 * ', g, o, r, o, d, ' = ', s, t, r, d, n, d)
  46.                               end;
  47.                               Exclude(m, n)
  48.                             end;
  49.                           Exclude(m, t)
  50.                         end;
  51.                       Exclude(m, s)
  52.                     end;
  53.                   Exclude(m, d)
  54.                 end;
  55.               Exclude(m, r)
  56.             end;
  57.           Exclude(m, o)
  58.         end;
  59.       Exclude(m, g)
  60.     end;
  61.   WriteLn('Значения цифр, при которых сумма цифр в результате наибольшая:');
  62.   WriteLn('С = ', maxs, '; Т = ', maxt, '; Р = ', maxr, '; А = ', maxd, '; Н = ', maxn);
  63.   ReadLn
  64. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут