Формирование массива, элементами которого являются числа, сумма цифр которых равна K и которые не больше N - PascalABC.NET
Формулировка задачи:
Даны натуральные числа К и N. Составить программу формирования массива A, элементами которого являются числа, сумма цифр которых равна K и которые не больше N.
Сделать программу надо с процедурой или с функцией.
И составить блок схему .
Помогите пожалуйста
Решение задачи: «Формирование массива, элементами которого являются числа, сумма цифр которых равна K и которые не больше N»
textual
Листинг программы
uses crt; procedure pr; var s,k,su,n,i:integer; a:array[1..100] of integer; label x,y1,y2; begin s:=0;su:=0;i:=1; write('Vvedite chislo - ');y1:read(k); if k<0 then begin write('Vvedite polojitelnoe chislo - '); goto y1; end; write('Vvedite N - ');y2:read(n); if n<0 then begin write('Vvedite polojitelnoe N - '); goto y2; end; repeat x:s:=random(n)+1; su:=su+s; if su>k then begin su:=su-s; goto x; end else begin a[i]:=s; write(a[i]:3); inc(i); end; until su=k; writeln; end; begin randomize; pr; end.
Объяснение кода листинга программы
- Установка начального значения переменных s, k, su, n, i.
- Ввод пользователем числа k и проверка на корректность ввода.
- Ввод пользователем числа n и проверка на корректность ввода.
- Повторение цикла до тех пор, пока сумма цифр элемента массива не станет равной k.
- Генерация случайного числа в диапазоне от 1 до n.
- Добавление этого числа к сумме цифр.
- Если сумма цифр превышает k, то это число вычитается из суммы и цикл повторяется.
- Если сумма цифр равна k, то число добавляется в массив и выводится на экран.
- Цикл повторяется до тех пор, пока сумма цифр не станет равной k.
- После завершения цикла выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д