-
Notifications
You must be signed in to change notification settings - Fork 1
/
pascaltraingle.java
95 lines (80 loc) · 2.78 KB
/
pascaltraingle.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package aryanhere.Striver;
import java.util.ArrayList;
// find the element at the (r,c) position..!
public class pascaltraingle {
public static long combination(int n , int r){
long res = 1;
for(int i = 0 ; i < n; i++){
res = res * (n - i);
res = res/(i + 1);
}
return res;
}
public static int pascaltriangle(int r , int c){
int element = (int)combination(c, r);
return element;
}
// Given the row number n print the nth row of pascals trainagle..!
public static void pascaltraingle2(int n){
for(int c = 1 ; c <= n ; c++){
System.out.println(combination(n -1, c - 1) + " ");
}
System.out.println();
}
// optimal appproach to solve this problem.!
public static void pascaltriangle3(int n){
long ans = 1;
System.out.println(ans + " ");
for(int i = 1; i < n; i++){
ans = ans * (n-1);
ans = ans / i;
System.out.println(ans + " ");
}
}
// Given the number of rows n print the first row of pascal traingle..!
public static ArrayList<ArrayList<Integer>> pascaltriangle4(int n){
ArrayList<ArrayList<Integer>> ans = new ArrayList<>(n);
for(int row = 1 ; row < n; row++){
ArrayList<Integer> tempList = new ArrayList<>(n);
for(int col = 1 ; col <= row; col++){
tempList.add(row-1, col-1);
}
ans.add(tempList);
}
return ans;
}
// one more approach to print the the first row of pascal triagle..!
public static ArrayList<Integer> buildrows(int row){
long ans = 1;
ArrayList<Integer> ansrow = new ArrayList<>();
ansrow.add(1);
for(int col = 1 ; col < row; col++){
ans = ans * (row - col);
ans = ans/col;
ansrow.add((int)ans);
}
return ansrow;
}
public static ArrayList<ArrayList<Integer>> pascaltriangle5(int n){
ArrayList<ArrayList<Integer>> ans = new ArrayList<>(n);
for(int row = 1; row <= n ; row++){
ans.add(buildrows(row));
}
return ans;
}
public static void main(String[]args){
int r = 5 ;
int c = 3;
int element = pascaltriangle(r, c);
System.out.println("the element at the positon (r,c) is " + element);
//to print he first n rows of the pascal triangle..
int n = 5;
ArrayList<ArrayList<Integer>> ans = pascaltriangle5(n);
for(ArrayList<Integer> it : ans){
for(int ele : it){
System.out.println(ele + " ");
}
}
System.out.println();
}
}