Комбинаторные объекты и числа - вычислить значение выражения - PascalABC.NET
Формулировка задачи:
вечер добрый! помогите пожалуйста с этим заданием . не могу составить программу вычисления
заранее благодарю
Решение задачи: «Комбинаторные объекты и числа - вычислить значение выражения»
textual
Листинг программы
program tak;
{возвращает число сочетаний из M по N}
function Combin(N, M: longint): longint;
var
C, r, i: longint;
begin
C := 1;
if N <= M then {проверка корректности входных данных}
begin
if N > (M - N) then
N := M - N;
r := (M - N + 1); {граница окончания цикла по i}
i := M;
while i >= r do {вместо for - т.к. for не поддерживает тип QWord}
begin
C := (C * i) div (M + 1 - i);
Dec(i);
end;
end;
Combin := C;
end;
var
s, temp: longint;
i, w: integer;
begin
w := 2;
s := 0;
for i := 1 to w do
begin
temp := Combin(w - i, 16);
if odd(i) then
s := s - temp
else
s := s + temp;
end;
for i := w + 1 to 17 do
begin
temp := Combin(i, 17);
if odd(i) then
s := s - temp
else
s := s + temp;
end;
writeln(s);
end.