版权声明:071623 https://blog.csdn.net/weixin_43584220/article/details/88909504
//这种思路是用排列方法写的
// 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;
public class YangHui_Triangle1 {
public static void main(String[] args) {
int level = 4;
for(int i = 0; i <= level; i++) {
// System.out.print((level - i) * " ");
f(i);
System.out.println();
}
}
//杨辉三角的第m层的第n个元素
private static int f(int m) {
for(int i = 0; i <= m; i++) {
System.out.print(f1(m, i) + " ");
}
return 0;
}
//排列方法
private static int f1(int m, int n) {
if(m < n) return 0;
if(n == 0) return 1;
if(m == n) return 1;
return f1(m - 1, n - 1) + f1(m - 1, n);
}
}
//这种是用 (当前数)是(前一排对应位置数)加(前一排对应位置数)的前一位数的递归思想写的
package cn.LanQiaoBeiAlgorithm.Ravanla;
public class YangHui_Triangle2 {
public static void main(String[] args) {
int level = 4;
for(int i = 0; i <= level; i++) {
f(i);
}
}
private static void f(int level) {
for(int i = 0; i <= level; i++) {
System.out.print(f1(level, i) + " ");
}
System.out.println();
}
private static int f1(int n, int m) {
if(n == 0 || m == n || m == 0) return 1;
return f1(n - 1, m) + f1(n - 1, m - 1);
}
}