Распечатать числовую последовательность - Free Pascal
Формулировка задачи:
Распечатать числовую последовательность,которая задается по следующим правилам:
-первое число последовательности-натуральное число,кратное 3(входной параметр задачи);
- каждый последующий элемент равен сумме кубов цифр предыдущего.
Например:
33
33+33=54
53+43=189
13+83+93=1242
13+23+43+23=81
83+13=513
53+13+33=153
Вычисление прекратить,когда очередной элемент последовательности станет равен 153.(Известно,что любая такая последовательность рано или поздно приводит к 153).
Решение задачи: «Распечатать числовую последовательность»
textual
Листинг программы
var a:longint; function f(a:longint):longint; var t:longint; begin t:=0; while a>0 do begin if a>9 then write(a mod 10,'^3+') else write(a); t:=t+(a mod 10)*(a mod 10)*(a mod 10); a:=a div 10; end; writeln('=', t); f:=t; end; begin read(a); while a<>153 do a:=f(a); begin end; end.
Объяснение кода листинга программы
В данном коде:
- Объявлены три переменные:
a
типа longint,t
типа longint иf
- функция, которая также возвращает значение типа longint. - Функция
f
принимает на вход числоa
и возвращает результат вычисления функции. Внутри функции объявлена еще одна переменнаяt
, которая используется для хранения промежуточных результатов. - В основной части кода вызывается функция
f
с аргументомa
, значение которого считывается из консоли. - Затем в цикле while происходит вызов функции
f
с результатом вычисления функцииf
в качестве аргумента, пока значениеa
не станет равным 153. - Внутри цикла while происходит вывод на консоль значения переменной
a
или его частей (если число больше 9) и промежуточного результата вычисления функцииf
. - Значение промежуточного результата присваивается переменной
t
. - Результатом вычисления функции
f
является значение переменнойf
, которое присваивается переменнойa
. - Значение переменной
a
уменьшается на единицу за счет деления на 10. - Если число больше 9, то выводится его последняя цифра.
- Значение переменной
t
обновляется за счет умножения последней цифры числа на последнюю цифру числа, умноженную на последнюю цифру числа. - После окончания цикла while выводится значение переменной
t
. - Значение переменной
f
присваивается переменнойa
. - Цикл while повторяется до тех пор, пока значение
a
не станет равным 153. - Код завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д