Ввести натуральное К и распечатать таблицу квадратов всех десятичных цифр введенного натурального числа - Turbo Pascal
Формулировка задачи:
Известно, что сумма N первых нечетных чисел равна квадрату числа N. Например, 1 + 3 + 5 = 32 , 1 + 3 + 5 + 7 = 42 и т.д. Ввести натуральное К и распечатать таблицу квадратов всех десятичных цифр введенного натурального числа начиная с младшей с использованием указанного соотношения.
Пример:
K=7385
5 25=1+3+5+7+9
8 64=1+3+5+7+9+11+13+15
3 9=1+3+5
7 49=1+3+5+7+9+11+13
Собственно нужен хоть какой то пример или алгоритм.
Решение задачи: «Ввести натуральное К и распечатать таблицу квадратов всех десятичных цифр введенного натурального числа»
textual
Листинг программы
var k: integer; i, t: byte; begin write('Enter K: '); readln(k); while k > 0 do begin t := k mod 10; if t = 0 then writeln('0 0 = 0') // случай, когда цифра = 0 else if t = 1 then writeln('1 1 = 1') // случай, когда цифра = 1 else // остальные цифры begin write(t, ' ', t * t, ' = 1'); for i := 2 to t do write(' + ', i * 2 - 1); writeln; end; k := k div 10; end; readln; end.
Объяснение кода листинга программы
- Переменная
k
предназначена для хранения введенного пользователем натурального числа. - Переменные
i
иt
используются для обработки каждой цифры числа. - Цикл
while
выполняется до тех пор, пока значение переменнойk
больше нуля. - Внутри цикла переменная
t
инициализируется как остаток от деления значения переменнойk
на 10. - Если значение переменной
t
равно нулю, то выводится строка '0 0 = 0', что означает, что цифра равна нулю. - Если значение переменной
t
равно единице, то выводится строка '1 1 = 1', что означает, что цифра равна единице. - В остальных случаях выводится строка, которая представляет собой цифру, умноженную на саму себя, и затем добавляются остальные цифры числа (в порядке их появления), а также знак плюса и два раза значение каждой из этих цифр.
- После вывода всех значений для каждой цифры числа, значение переменной
k
уменьшается на 10 (для получения следующей цифры числа). - После завершения цикла
while
программа завершается с помощью функцииreadln
.