Procedure nCr(n,r): if r is equal to 1 Return n else if n is equal to r Return 1 else if dp[n][r] is not equal to -1 //The value has been calculated Return dp[n][r] end if dp[n][r] := nCr(n-1,r) + nCr(n-1,r-1) Return dp[n][r]
nCr -i təyin etmək üçün bizə 2 parametr lazım oldu: n və r . Bu parametrlər vəziyyətlər adlanırlar. Burada sadəcə olaraq nəzərə almaq lazımdır ki, vəziyyətlərin sayı dp massivinin ölçüsünü təyin edir. Bu halda dinamik proqramlaşdırma üçün hazırlanan alqoritmlər aşağıdakı ümumi sxemə uyğun olacaq:
Procedure DP-Function(state_1, state_2, ...., state_n) Return if reached any base case Check array and Return if the value is already calculated. Calculate the value recursively for this state Save the value in the table and Return