Найти все числа Армстронга в диапазоне от 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.
Объяснение кода листинга программы
- В процедуре PP объявлены следующие переменные: k, l, sum, nn - целые числа; a, b - входные значения, которые пользователь вводит.
- В цикле while nn > 0 выполняется поиск количества цифр в числе. Для этого используется оператор mod (остаток от деления) для получения последней цифры числа и оператор div (деление) для получения числа, состоящего из цифр, которые остались после удаления последней цифры.
- Затем переменная sum инициализируется нулем, так как сумма еще не была определена.
- В следующем цикле while n > 0 выполняется извлечение цифр из числа и подсчет суммы. Для этого используется оператор mod для получения последней цифры числа, оператор div для получения числа, состоящего из цифр, которые остались после удаления последней цифры, и оператор round для округления суммы до ближайшего целого числа.
- После завершения цикла n > 0 переменная sum будет содержать сумму всех цифр числа, возведенных в степень, равную количеству цифр в числе.
- В конце процедуры PP переменная res инициализируется значением суммы sum.
- В основной части программы объявлены переменные q, i, a, b - целые числа.
- В цикле for i := a до b выполняется вызов процедуры PP для каждого числа i.
- Если i равно q (то есть число i равно самому себе), то выводится значение i.
- В конце программы выводится символ новой строки.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д