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

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

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

Помогите решить. Вводим число, загоняем по элементам в массив, после в нем перебираем все комбинации цифр этого числа. Начало что-то типа такого
Листинг программы
  1. var
  2. i,m: integer;
  3. a: array [1..5] of integer;
  4. begin
  5. readln(m);
  6. i := 0;
  7. while m > 0 do begin
  8. i := i + 1;
  9. a[i] := m mod 10;
  10. m := m div 10;
  11. end;
  12. end.

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

textual
Листинг программы
  1. { генерация перестановок }
  2. const k=5; { количество цифр в числе}
  3. var a:array[1..k] of byte;
  4.     j:integer;{кол.цифр и счетчик}
  5.     n,m,kol:integer;{число и количество перестановок}
  6. procedure generate (l,r:integer;var k:longint);
  7. var i,v:integer;
  8. begin
  9. if (l=r)and(a[1]>0) then{убираем случаи когда первый ноль}
  10.   begin
  11.     for i:=1 to n do write(a[i],' ');
  12.     writeln;
  13.     k:=k+1;
  14.   end
  15. else
  16.   begin
  17.     for i := l to r do
  18.       begin
  19.         v:=a[l]; a[l]:=a[i]; a[i]:=v; {обмен a[i],a[l]}
  20.         generate(l+1,r,k); {вызов новой генерации}
  21.         v:=a[l]; a[l]:=a[i]; a[i]:=v; {обмен a[i],a[l]}
  22.       end;
  23.   end;
  24. end;
  25. var i:byte;
  26. begin
  27. repeat
  28. write('Введите число из 5 разных цифр, не содержащее цифру 0 M=');
  29. readln(m);
  30. until(m>9999)and(m<=999999);
  31. n:=0;
  32. while m>0 do
  33.  begin
  34.   n:=n+1;
  35.   a[k-n+1]:=m mod 10;
  36.   m:=m div 10;
  37.  end;
  38. generate( 1,n,kol);
  39. writeln('kol=',kol);
  40. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы