黑马程序员技术交流社区

标题: 等差数列解决打印菱形图案 [打印本页]

作者: Open    时间: 2016-4-2 23:08
标题: 等差数列解决打印菱形图案
               学好数学会让很多算法都得到有效解决,本题的*符号便可使用等差数列求解,分析一下
               1)这个图形,  总共有N行 可以分为两部分. 上面的三角和下面的三角
                   所以你要有两个循环 来控输出两个三角行数.
              2)观察发现输出三角的时候要输出若干空格
                  一个有数目按一定规律变化的星号
                 进一步发现 上面的三角从1-N 的数目变化组成了一个首项为1公差为1的等差数列 下面的N-... 是一     个首项
为 N-1  公差为1的数列 同道  上面的三角星号组成的是一个 首项为 1公差为2的等差数列
而下面的是 首项为 a1+(n-1)*d-2  公差为 2的数列
int n = 100;
                for(int i=1;i<=n;i++){

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

                        for(int j=1;j<=i;j++){     //  1   2   3  4  
                                System.out.print(" ");
                        }
                        for(int k=1;k<=(1+(n-1)*2) - 2 + (i-1)*(-2);k++){  
                                System.out.print("*");
                        }
                        System.out.println();
                }       
作者: zapple926    时间: 2016-4-2 23:47
没怎么看懂,不过有时间好好研究研究
作者: zhang3216858    时间: 2016-4-2 23:48
我刚学了for循环就看班里有人做出来,自己试了试没什么思路
作者: 性感不是骚    时间: 2016-4-3 00:10
给力,大神
作者: 兵蜂    时间: 2016-4-3 00:21
巧了,朋友我今天学的,也做了一个菱形,不过实现起来相对于你的方法,我是有点麻烦了,谢谢!!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2