Задачи по теме «Циклы» (Цикл с параметром) - QBasic

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

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

Здравствуйте, помогите составить алгоритм решения ребуса МУХА + МУХА + МУХА = СЛОН (различные буквы обозначают различные цифры, старшая — не 0). Заранее, спасибо.

Решение задачи: «Задачи по теме «Циклы» (Цикл с параметром)»

textual
Листинг программы
CLS
 FOR i = 3000 TO 9999 STEP 3
 s = i \ 1000
 l = i \ 100 MOD 10
 o = i \ 10 MOD 10
 n = i MOD 10
 IF s <> l AND s <> o AND s <> n AND l <> o AND l <> n AND o <> n THEN
 b = i / 3
 m = b \ 1000
 u = b \ 100 MOD 10
 h = b \ 10 MOD 10
 a = b MOD 10
 IF m <> u AND m <> h AND m <> a AND u <> h AND u <> a AND h <> a THEN
 IF s <> m AND s <> u AND s <> h AND s <> a AND l <> m AND l <> u AND l <> h AND l <> a AND o <> m AND o <> u AND o <> h AND o <> a AND n <> m AND n <> u AND n <> h AND n <> a THEN PRINT "slon="; i; "muha="; i / 3,
 END IF
 END IF
 NEXT

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

  1. В первой строке используется команда CLS для очистки экрана.
  2. Затем следует цикл FOR, который начинается с i = 3000 и продолжается до i = 9999 с шагом 3.
  3. Внутри цикла переменная s получает остаток от деления i на 1000.
  4. Переменная l получает остаток от деления i на 100, с последующим модулем 10.
  5. Переменная o получает остаток от деления i на 10, с последующим модулем 10.
  6. Переменная n получает остаток от деления i на 10.
  7. С помощью оператора IF проверяется, что s не равно l, o и n, и l не равно o и n, и o не равно n.
  8. Если условие истинно, то выполняется блок кода, который начинается с присваивания переменной b значения i, разделенного на 3.
  9. Затем переменная m получает остаток от деления b на 1000.
  10. Переменная u получает остаток от деления b на 100, с последующим модулем 10.
  11. Переменная h получает остаток от деления b на 10, с последующим модулем 10.
  12. Переменная a получает остаток от деления b на 10.
  13. С помощью оператора IF проверяется, что m не равно u, h и a, и u не равно h и a, и h не равно a.
  14. Если условие истинно, то выполняется блок кода, который начинается с проверки, что s не равно m, u, h и a, и l не равно m, u, h и a, и o не равно m, u, h и a, и n не равно m, u, h и a.
  15. Если это условие истинно, то выполняется команда PRINT, которая выводит на экран строку slon=, за которой следует значение i, а затем строку muha=, за которой следует значение i/3.
  16. Команда END IF завершает внутренний блок кода.
  17. Команда NEXT завершает цикл FOR.

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

14   голосов , оценка 4 из 5
Похожие ответы