func main() { myArrayOfK := [4]int{5, 6, 7, 8} var x int fmt.Println("\nBinomial Coefficient Using Dynamic Programming:", bin2(50, 5)) for _, element := range myArrayOfK { start := time.Now() x = bin2(50, element) elapsed := time.Since(start) fmt.Println("bin2 (50,", element, ") = ", x,
(n int, k int)
| 24 | |
| 25 | // Bin2 function |
| 26 | func Bin2(n int, k int) int { |
| 27 | var i, j int |
| 28 | B := make([][]int, (n + 1)) |
| 29 | for i := range B { |
| 30 | B[i] = make([]int, k+1) |
| 31 | } |
| 32 | |
| 33 | for i = 0; i <= n; i++ { |
| 34 | for j = 0; j <= min.Int(i, k); j++ { |
| 35 | if j == 0 || j == i { |
| 36 | B[i][j] = 1 |
| 37 | } else { |
| 38 | B[i][j] = B[i-1][j-1] + B[i-1][j] |
| 39 | } |
| 40 | } |
| 41 | } |
| 42 | return B[n][k] |
| 43 | } |