//这种思路是用组合方法写的// c00// c10 c11// c20 c21 c22// c30 c31 c32 c33// c40 c41 c42 c43 c44// c50 c51 c52 c53 c54 c55//c60 c61 c62 c63 c64 c65 c66 package cn.LanQiaoBeiAlgorithm.Ravanla;publicclassYangHui_Triangle1{publicstaticvoidmain(String[] args){
int level =4;for(int i =0; i <= level; i++){// System.out.print((level - i) * " ");f(i);
System.out.println();}}//杨辉三角的第m层的第n个元素privatestatic int f(int m){for(int i =0; i <= m; i++){
System.out.print(f1(m, i)+" ");}return0;}//组合方法privatestatic int f1(int m, int n){if(m < n)return0;if(n ==0)return1;if(m == n)return1;returnf1(m -1, n -1)+f1(m -1, n);}}
//这种是用 (当前数)是(前一排对应位置数)加(前一排对应位置数)的前一位数的递归思想写的package cn.LanQiaoBeiAlgorithm.Ravanla;publicclassYangHui_Triangle2{publicstaticvoidmain(String[] args){
int level =4;for(int i =0; i <= level; i++){f(i);}}privatestaticvoidf(int level){for(int i =0; i <= level; i++){
System.out.print(f1(level, i)+" ");}
System.out.println();}privatestatic int f1(int n, int m){if(n ==0|| m == n || m ==0)return1;returnf1(n -1, m)+f1(n -1, m -1);}}