Формирование массива, элементами которого являются числа, сумма цифр которых равна 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.

Объяснение кода листинга программы

  1. Установка начального значения переменных s, k, su, n, i.
  2. Ввод пользователем числа k и проверка на корректность ввода.
  3. Ввод пользователем числа n и проверка на корректность ввода.
  4. Повторение цикла до тех пор, пока сумма цифр элемента массива не станет равной k.
  5. Генерация случайного числа в диапазоне от 1 до n.
  6. Добавление этого числа к сумме цифр.
  7. Если сумма цифр превышает k, то это число вычитается из суммы и цикл повторяется.
  8. Если сумма цифр равна k, то число добавляется в массив и выводится на экран.
  9. Цикл повторяется до тех пор, пока сумма цифр не станет равной k.
  10. После завершения цикла выводится на экран.

Оцени полезность:

14   голосов , оценка 4.357 из 5
Похожие ответы