Найти все числа Армстронга в диапазоне от a до b - Turbo Pascal (29461)
Формулировка задачи:
Решение задачи: «Найти все числа Армстронга в диапазоне от a до b»
uses crt; function Armstrong(n:longint):boolean; var m,k,p,s,t,i:integer; begin m:=n; k:=0; {количество цифр в числе} while m>0 do begin k:=k+1; m:=m div 10; end; s:=0; m:=n; while m>0 do begin p:=m mod 10; t:=1; for i:=1 to k do t:=t*p; s:=s+t; m:=m div 10; end; Armstrong:=s=n; end; var a,b,i,k:longint; begin clrscr; repeat write('Введите интервал натуральных чисел b>a '); readln(a,b); until(a>0)and(b>a); k:=0; for i:=a to b do if Armstrong(i) then begin k:=1; write(i,' '); end; if k=0 then write('На этом интервале нет чисел Армстронга'); readln end.
Объяснение кода листинга программы
Этот код написан на Turbo Pascal и предназначен для поиска всех чисел Армстронга в заданном диапазоне.
В функции Armstrong
используется цикл while
, который продолжается до тех пор, пока число n
не станет равным нулю. Внутри цикла вычисляется количество цифр в числе n
(переменная k
). Затем число n
делится на 10 (переменная m
), пока результат деления не станет равным нулю.
После этого начинается второй цикл while
, который также продолжается до тех пор, пока число n
не станет равным нулю. Внутри цикла вычисляется последняя цифра числа n
(переменная p
). Затем число n
делится на 10 (переменная m
), и результат умножается на последнюю цифру. Итоговое значение сохраняется в переменной t
. Затем к итоговому значению добавляется значение переменной s
, которое изначально равно нулю. Если итоговое значение равно исходному числу n
, то это означает, что число Армстронга найдено.
В основной части кода используется цикл for
, который повторяется от числа a
до числа b
включительно. Если число i
является числом Армстронга, то его значение выводится на экран. Если после прохода по всем числам в диапазоне от a
до b
не было найдено ни одного числа Армстронга, то выводится сообщение об этом.
Наконец, перед завершением программы считывается входное значение от пользователя (диапазон чисел), и проверяется, что диапазон не пустой. Если это так, то начинается новый цикл, аналогичный циклу внутри функции Armstrong
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д