效果图如下:
java算法之打印杨辉三角
首先我们看图片上下是对称的,我们先来打印上半部分,
1.用一个for循环来做外层循环控制打印的列数
for(int i =0;i<10;i++){//打印10列

        }

        2.同样用2个for循环来打印内层的空格和*
                        for(int j = 0;j<10-j;j++){//打印空格,不换行
                                    System.out.print(" ")
                        }
                        当打印了空格不换行,再打印*就只能往后面放
                        for(int k = 0;k<2*i;k++){//打印“*”
                                            System.out.print("*")
                        }

                        完整代码如下:
                            for(int i=1;i<10;i++) {
                                    for(int j = 1 ;j<10-i;j++) {//打印空格
                                                System.out.print(" ");
                                        }
                                        for(int k = 1;k<2*i;k++) {//打印“*”
                                                System.out.print("*");
                                        }

                                            System.out.println();//打印一行后换行
                        }

                        这段代码打印后效果图如下:

java算法之打印杨辉三角

                3.接下来写下半角,思路和上半角一样,只是循环的条件变了而已
                直接上代码:
                for(int i=1;i<10;i++) {
                            for(int k = 0;k<i;k++) {
                                    System.out.print(" ");
                            }
                            for(int j = 1;j<18-2*i;j++) {
                                    System.out.print("*");
                            }
                            System.out.println();
            }

            上图:

java算法之打印杨辉三角

            ok,现在只要将代码拼接就可以了。
            完整代码如下:
            public class PascalTriangle {

public static void main(String[] args) {
    for(int i=1;i<10;i++) {
                    for(int j = 1 ;j<10-i;j++) {
                            System.out.print(" ");
                    }
                    for(int k = 1;k<2*i;k++) {
                                System.out.print("*");
                    }

                System.out.println();
    }
    for(int i=1;i<10;i++) {
            for(int k = 0;k<i;k++) {
                        System.out.print(" ");
            }
            for(int j = 1;j<18-2*i;j++) {
                        System.out.print("*");
            }
        System.out.println();
}

}
}
这个题目思路主要就是利用循环分别打印空格和*,然后用条件来限制个数。