Решить ребус (7 * Дни = Годы) - Free Pascal

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

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

Помогите решить задачу-ребус. Условие: ДНИ + ДНИ + ДНИ + ДНИ + ДНИ + ДНИ + ДНИ = ГОДЫ

Решение задачи: «Решить ребус (7 * Дни = Годы)»

textual
Листинг программы
  1. var
  2.   d, n, i, g, o, s: integer;
  3.   m: set of byte;
  4.  
  5. begin
  6.   m := [];
  7.   for d := 1 to 9 do
  8.     if not (d in m) then
  9.     begin
  10.       Include(m, d);
  11.       for n := 0 to 9 do
  12.         if not (n in m) then
  13.         begin
  14.           Include(m, n);
  15.           for i := 0 to 9 do
  16.             if not (i in m) then
  17.             begin
  18.               Include(m, i);
  19.               for g := 1 to 9 do
  20.                 if not (g in m) then
  21.                 begin
  22.                   Include(m, g);
  23.                   for o := 0 to 9 do
  24.                     if not (o in m) then
  25.                     begin
  26.                       Include(m, o);
  27.                       for s := 0 to 9 do
  28.                         if not (s in m) then
  29.                         begin
  30.                           Include(m, s);
  31.                           if 7 * (d * 100 + n * 10 + i) = g * 1000 + o * 100 + d * 10 + s then
  32.                             WriteLn('7 * ', d, n, i, ' = ', g, o, d, s);
  33.                           Exclude(m, s)
  34.                         end;
  35.                       Exclude(m, o)
  36.                     end;
  37.                   Exclude(m, g)
  38.                 end;
  39.               Exclude(m, i)
  40.             end;
  41.           Exclude(m, n)
  42.         end;
  43.       Exclude(m, d)
  44.     end;
  45.   ReadLn
  46. end.

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

  1. Создается пустое множество m для хранения чисел от 0 до 9.
  2. Запускается цикл for для чисел d от 1 до 9.
  3. Проверяется, есть ли текущее число d уже в множестве m. Если нет, то оно добавляется.
  4. Запускается второй цикл for для чисел n от 0 до 9.
  5. Проверяется, есть ли текущее число n уже в множестве m. Если нет, то оно добавляется.
  6. Запускается третий цикл for для чисел i от 0 до 9.
  7. Проверяется, есть ли текущее число i уже в множестве m. Если нет, то оно добавляется.
  8. Запускается четвертый цикл for для чисел g от 1 до 9.
  9. Проверяется, есть ли текущее число g уже в множестве m. Если нет, то оно добавляется.
  10. Запускается пятый цикл for для чисел o от 0 до 9.
  11. Проверяется, есть ли текущее число o уже в множестве m. Если нет, то оно добавляется.
  12. Запускается шестой цикл for для чисел s от 0 до 9.
  13. Проверяется, есть ли текущее число s уже в множестве m. Если нет, то оно добавляется.
  14. Проверяется условие равенства 7 (d 100 + n 10 + i) = g 1000 + o 100 + d 10 + s.
  15. Если условие выполняется, то выводится сообщение '7 * ', d, n, i, ' = ', g, o, d, s.
  16. Число s удаляется из множества m.
  17. Число o удаляется из множества m.
  18. Число g удаляется из множества m.
  19. Число i удаляется из множества m.
  20. Число n удаляется из множества m.
  21. Число d удаляется из множества m.
  22. Запускается цикл ReadLn для чтения следующего ввода.

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


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

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

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

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

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

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