Найти все автоморфные числа на отрезке [a, b] - Pascal ABC

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

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

Натуральное число называется автоморфным , если оно равно последним цифрам своего квадрата. Например, . Напишите программу, которая находит все автоморфные числа на отрезке [ a , b ] . Входные данные Входная строка содержит два натуральных числа – значения a и b , разделённых пробелами. Гарантируется, что a ≤ b . Выходные данные Программа должна вывести в одну строчку все автоморфные числа на отрезке [ a , b ] , разделив их пробелами. Если таких чисел нет, программа должна вывести число -1. Примеры входные данные 20 100 выходные данные 25 76 Я программу написала, но не могу сделать так, что если чисел нет вывести -1, как учесть это условие?
Листинг программы
  1. var a,b,i,c: integer;
  2. begin
  3. read(a,b);
  4. c:=10;
  5. for i:=a to b do
  6. begin
  7. while c<=i do
  8. c:=c*10;
  9. begin
  10. if i*i mod c=i then
  11. write(i,' ')
  12.  
  13. end;
  14. end;
  15. end.

Решение задачи: «Найти все автоморфные числа на отрезке [a, b]»

textual
Листинг программы
  1. var a,b,i,c: integer;
  2.     f:boolean;{f:integer;}
  3. begin
  4.   read(a,b);
  5.   c:=10;
  6.   f:=false;{f:=0;}
  7.     for i:=a to b do
  8.       begin
  9.       while c<=i do c:=c*10;
  10.         begin
  11.         if i*i mod c=i then
  12.                          begin
  13.                           write(i,' ');
  14.                           f:=true{f:=1}
  15.                          end
  16.                        
  17.                        
  18.        end;
  19.       end;
  20.      if not f{f=0} then write('-1')
  21. end.

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

В данном коде происходит поиск всех автоморфных чисел на отрезке [a, b]. Переменные в коде имеют следующие значения и названия:

  1. a, b: значения считываются с клавиатуры и определяют границы отрезка.
  2. c: начальное значение переменной, которая будет использоваться для вычисления чисел.
  3. f: логическое значение, которое изменяется в процессе выполнения цикла. Изначально установлено в значение false.
  4. i: переменная, которая используется в цикле.
  5. while: используется для выполнения цикла до тех пор, пока условие истинно.
  6. c := c * 10: значение переменной c увеличивается на 10 при каждом проходе цикла.
  7. if i * i mod c = i then: выполняется проверка, является ли число i автоморфным числом. Если это так, то число записывается на экран и значение переменной f устанавливается в true.
  8. write(i, ' '): записывает число i и пробел на экран.
  9. f := true: если предыдущая проверка была успешной, то значение переменной f устанавливается в true.
  10. end;: завершает блок кода, выполняющийся до тех пор, пока условие истинно.
  11. if not f then write('-1'): если значение переменной f равно false, то на экран записывается число -1. В целом, код выполняет следующие действия: считывает значения a и b, устанавливает начальное значение переменной c. Затем происходит цикл, в котором значение c увеличивается на 10 при каждом проходе. Внутри цикла выполняется проверка, является ли текущее значение i автоморфным числом. Если это так, то число записывается на экран и значение переменной f устанавливается в true. Если значение переменной f остается false, то на экран записывается число -1.

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


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

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

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

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

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

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