Найти все числа Армстронга в диапазоне от 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д