Найти все числа Армстронга в диапазоне от a до b - Turbo Pascal (29461)

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

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

Найти все числа Армстронга в диапазоне от a до b, где a и b – целые натуральные числа. Написать подпрограмму, которая находит сумму кубов цифр числа.

Решение задачи: «Найти все числа Армстронга в диапазоне от a до b»

textual
Листинг программы
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.

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


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

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

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