Recur6. Описать рекурсивную функцию CombiN_1($$N$$, $$K$$) целого типа, находящую $$C(N, K)$$- число сочетаний из $$N$$ элементов по $$K$$ — с помощью рекуррентного соотношения: $$C(N, 0)=C(N, N)=1$$, $$C(N, K)=C(N — 1, K)+C(N — 1, K — 1)$$ при $$0<K<N$$. Параметры функции — целые числа; $$N>0$$, $$0 \le K \le N$$. Дано число $$N$$ и пять различных значений $$K$$. Вывести числа $$C(N, K)$$вместе с количеством рекурсивных вызовов функции CombiN_1, потребовавшихся для их нахождения.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
program Recur6; var N,K,i,Num:integer; Function CombiN_1(N,K:integer):integer; begin if (K=0) or (K=N) then CombiN_1:=1 else CombiN_1:=CombiN_1(N-1,K)+CombiN_1(N-1,K-1); inc(Num); end; begin Write('N: '); Readln(N); for i:=1 to 5 do begin Num:=0; Write('K: '); Readln(K); Writeln(CombiN_1(N,K)); Writeln(Num); end; end. |
Другие задачи из раздела Recur можно посмотреть здесь.
Комментарии: