A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Open 中级黑马   /  2016-4-2 23:08  /  1150 人查看  /  4 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

               学好数学会让很多算法都得到有效解决,本题的*符号便可使用等差数列求解,分析一下
               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();
                }       

4 个回复

倒序浏览
没怎么看懂,不过有时间好好研究研究
回复 使用道具 举报
我刚学了for循环就看班里有人做出来,自己试了试没什么思路
回复 使用道具 举报
给力,大神
回复 使用道具 举报
巧了,朋友我今天学的,也做了一个菱形,不过实现起来相对于你的方法,我是有点麻烦了,谢谢!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马