To understand the recursive logic of Pascal's triangle, draw a sample triangle as follows.
Now, pick a a column(c) and row(r) value. You will find that,
The program in Scala is as follows.
Program
Output
r,c
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
0
|
1
|
|
|
|
|
|
|
1
|
1
|
1
|
|
|
|
|
|
2
|
1
|
2
|
1
|
|
|
|
|
3
|
1
|
3
|
3
|
1
|
|
|
|
4
|
1
|
4
|
6
|
4
|
1
|
|
|
5
|
1
|
5
|
10
|
10
|
5
|
1
|
|
6
|
1
|
6
|
15
|
20
|
15
|
6
|
1
|
Now, pick a a column(c) and row(r) value. You will find that,
(c,r) = (c-1,r-1)+(c,r-1)
The program in Scala is as follows.
Program
object Main { def main(args: Array[String]) { println("Pascal's Triangle") for (row <- 0 to 10) { for (col <- 0 to row) print(pascal(col, row) + " ") println() } } def pascal(c: Int, r: Int): Int = { if (c == 0 || c == r) 1 else pascal(c - 1, r - 1) + pascal(c, r - 1) }
Output
Pascal's Triangle 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 1 10 45 120 210 252 210 120 45 10 1
No comments:
Post a Comment
Your comments are very much valuable for us. Thanks for giving your precious time.