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

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

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

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

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

textual
Листинг программы
procedure PP(n: integer; var res: integer);
//находит сумму цифр входящего числа,возведенных в степень,равную количеству цифр в числе
var
  k, l, sum, nn: integer;
begin
  k := 0;
  nn := n;
  while nn > 0 do   //ищем количество цифр в числе
  begin l := nn mod 10;k := k + 1;nn := nn div 10; end;
  sum := 0;
  while n > 0 do   //вытаскиваем в цикле цифры и считаем сумму....
  begin
    l := n mod 10;
    sum := sum + round(power(l, k));
    n := n div 10;
  end;
  res := sum;
end;
 
var
  q, i, a, b: integer;
 
begin
  writeln('Введите a,b');
  readln(a, b);
  for i := a to b do
  begin
    pp(i, q);
    if i = q then
      writeln(i);
  end;
  writeln;
end.

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

  1. В процедуре PP объявлены следующие переменные: k, l, sum, nn - целые числа; a, b - входные значения, которые пользователь вводит.
  2. В цикле while nn > 0 выполняется поиск количества цифр в числе. Для этого используется оператор mod (остаток от деления) для получения последней цифры числа и оператор div (деление) для получения числа, состоящего из цифр, которые остались после удаления последней цифры.
  3. Затем переменная sum инициализируется нулем, так как сумма еще не была определена.
  4. В следующем цикле while n > 0 выполняется извлечение цифр из числа и подсчет суммы. Для этого используется оператор mod для получения последней цифры числа, оператор div для получения числа, состоящего из цифр, которые остались после удаления последней цифры, и оператор round для округления суммы до ближайшего целого числа.
  5. После завершения цикла n > 0 переменная sum будет содержать сумму всех цифр числа, возведенных в степень, равную количеству цифр в числе.
  6. В конце процедуры PP переменная res инициализируется значением суммы sum.
  7. В основной части программы объявлены переменные q, i, a, b - целые числа.
  8. В цикле for i := a до b выполняется вызов процедуры PP для каждого числа i.
  9. Если i равно q (то есть число i равно самому себе), то выводится значение i.
  10. В конце программы выводится символ новой строки.

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


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

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

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