java算法之打印杨辉三角

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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();//打印一行后换行
                        }

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

技术分享图片

                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();
            }

            上图:

技术分享图片

            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();
}

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

以上是关于java算法之打印杨辉三角的主要内容,如果未能解决你的问题,请参考以下文章

怎样用java打印杨辉三角,自己输入行

java基础之循环应用(打印三角形菱形)

Java入门:基础算法之计算三角形面积

java的杨辉三角问题

Java小白入门200例30之打印全三角形

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情