76
правок
Изменения
Новая страница: «<code> // b – список, содержащий разбиение данного числа, length – его размер. '''function''' nextPartition(va...»
<code>
// 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;'''
</code>
// 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;'''
</code>