Дано число n из 5 цифр. Составить все комбинации этих цифр - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Помогите решить. Вводим число, загоняем по элементам в массив, после в нем перебираем все комбинации цифр этого числа. Начало что-то типа такого

Решение задачи: «Дано число n из 5 цифр. Составить все комбинации этих цифр»

textual
Листинг программы
{ генерация перестановок }
const k=5; { количество цифр в числе}
var a:array[1..k] of byte;
    j:integer;{кол.цифр и счетчик}
    n,m,kol:integer;{число и количество перестановок}
procedure generate (l,r:integer;var k:longint);
var i,v:integer;
begin
if (l=r)and(a[1]>0) then{убираем случаи когда первый ноль}
  begin
    for i:=1 to n do write(a[i],' ');
    writeln;
    k:=k+1;
  end
else
  begin
    for i := l to r do
      begin
        v:=a[l]; a[l]:=a[i]; a[i]:=v; {обмен a[i],a[l]}
        generate(l+1,r,k); {вызов новой генерации}
        v:=a[l]; a[l]:=a[i]; a[i]:=v; {обмен a[i],a[l]}
      end;
  end;
end;
var i:byte;
begin
repeat
write('Введите число из 5 разных цифр, не содержащее цифру 0 M=');
readln(m);
until(m>9999)and(m<=999999);
n:=0;
while m>0 do
 begin
  n:=n+1;
  a[k-n+1]:=m mod 10;
  m:=m div 10;
 end;
generate( 1,n,kol);
writeln('kol=',kol);
end.

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

Данный код на языке Pascal ABC предназначен для генерации всех возможных комбинаций цифр, составляющих заданное число. Переменные:

  • k - количество цифр в числе (в данном случае 5).
  • a - массив, в котором будут храниться цифры числа.
  • j - счетчик количества цифр и позиций, на которых они стоят.
  • n - вводимое пользователем число из 5 цифр.
  • m - текущая цифра, которую мы обрабатываем.
  • kol - количество перестановок, которое мы генерируем.
  • i - внутренний счетчик для цикла.
  • v - временная переменная для обмена цифрами. Процесс работы программы следующий:
    1. Проверяем, что введенное число не содержит цифру 0. Если содержит, то пропускаем некоторые позиции при генерации перестановок.
    2. Генерируем все возможные перестановки цифр, начиная с позиции 1 и до n. Для каждой позиции обмениваем текущую цифру местами с цифрой, которую мы только что получили.
    3. После завершения генерации всех перестановок выводим количество сгенерированных перестановок.
    4. Выводим введенное число. Пример: Введите число из 5 разных цифр, не содержащее цифру 0 M= 9876 Выведется: kol=120 После ввода числа 9876, программа сгенерирует и выведет 120 различных комбинаций цифр этого числа.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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