Обсуждение участника:Mogikan — различия между версиями
Mogikan (обсуждение | вклад) (Новая страница: «<code> // b – список, содержащий разбиение данного числа, length – его размер. '''function''' nextPartition(va...») |
(нет различий)
|
Текущая версия на 20:32, 22 декабря 2013
// b – список, содержащий разбиение данного числа, length – его размер. function nextPartition(var b:list): list; var i : integer; begin b[length] := b[length] - 1; b[length - 1] := b[length - 1] + 1; if b[length - 1] > b[length] then begin b[length - 1] := b[length - 1] + b[length]; length := length - 1; end else begin i := 0; while b[length - 1] * 2 <= b[length + i] do begin b[length + i + 1] := b[length + i] - b[length - 1]; b[length + i] := b[length - 1]; i := i + 1; end; length := length + i; end; return(b[1..length]); end;