Вот как его можно составить:
Само название "сочетание с повторением" говорит само за себя - это тоже самое, что и сочетание, но элементы могут повторяться. Таким образом, если взять сочетание 2 места по 3 элемента получим:
12
13
23
А если взять сочетание с повторением с таким параметром, то получим:
11
12
13
22
23
33
Вот сам код:
var n,m,i,j:longint;a,t:array[0..1000]of longint; Begin read(n,m); {ввод массива элементов в t} for i:=1 to m do //заполняем начальный уровень a[i]:=1; while a[0]=0 do //повторяем, пока укладываемся в м элементов begin for i:=1 to m do //выводим результат write(t[a[i]]); writeln; j:=m; while (j>0)and(a[j]=n) do //ищем с конца позицию меньше н j:=j-1; a[j]:=a[j]+1; //делаем её больше for i:=j+1 to m do //заполняем до конца лучшим случаем, которым можно заполнить a[i]:=a[j]; end; End.