Формирование массива, элементами которого являются числа, сумма цифр которых равна 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.
- После завершения цикла выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д