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 можно посмотреть здесь.
Комментарии: