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

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

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

Натуральное число называется автоморфным , если оно равно последним цифрам своего квадрата. Например, . Напишите программу, которая находит все автоморфные числа на отрезке [ a , b ] . Входные данные Входная строка содержит два натуральных числа – значения a и b , разделённых пробелами. Гарантируется, что a ≤ b . Выходные данные Программа должна вывести в одну строчку все автоморфные числа на отрезке [ a , b ] , разделив их пробелами. Если таких чисел нет, программа должна вывести число -1. Примеры входные данные 20 100 выходные данные 25 76 Я программу написала, но не могу сделать так, что если чисел нет вывести -1, как учесть это условие?

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

textual
Листинг программы
var a,b,i,c: integer;
    f:boolean;{f:integer;}
begin
  read(a,b);
  c:=10;
  f:=false;{f:=0;}
    for i:=a to b do
      begin
      while c<=i do c:=c*10;
        begin
        if i*i mod c=i then
                         begin
                          write(i,' ');
                          f:=true{f:=1}
                         end 
                        
                       
       end;
      end;
     if not f{f=0} then write('-1') 
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
Похожие ответы