Формирование массива, элементами которого являются числа, сумма цифр которых равна K и которые не больше N - Pascal ABC
Формулировка задачи:
Даны натуральные числа K и N. Составить программу формирования массива А, элементами которого являются числа, сумма цифр которых равна K и которые не больше N.
Решение задачи: «Формирование массива, элементами которого являются числа, сумма цифр которых равна K и которые не больше N»
textual
Листинг программы
function summa(n:integer):integer; var m,s:integer; begin m:=n; s:=0; while m>0 do begin s:=s+m mod 10; m:=m div 10; end; summa:=s; end; var m,i,k,n:integer; a:array[1..1000] of integer; begin repeat write('Максимальное число от 1 до 1000 n='); readln(n); until (n>0)and(n<=1000); repeat write('Сумма цифр от 1 до 27 k='); readln(k); until k in [1..27]; m:=0; i:=1; while i<n do begin if summa(i)=k then begin inc(m); a[m]:=i; end; inc(i); end; writeln('Массив А'); for i:=1 to m do write(a[i],' '); end.
Объяснение кода листинга программы
- Создается функция summa, которая принимает два аргумента: n (целое число) и k (целое число). Функция использует две переменные m и s для хранения промежуточных результатов. В цикле while m > 0 происходит следующее: s увеличивается на остаток от деления m на 10, а m делится на 10. После завершения цикла значение s присваивается переменной summa.
- Создается переменная m и инициализируется значением 0. Также создается переменная i и инициализируется значением 1. Цикл while i < n выполняется, пока i меньше n.
- Внутри цикла while проверяется, равна ли сумма цифр числа i значению k. Если да, то значение i увеличивается на 1, и число i добавляется в массив a.
- После завершения цикла while выводится сообщение
Массив А
. Затем выводится каждое число из массива a, разделенные пробелами. - Код завершается без использования вложенных списков.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д