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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© liyuejiayou 初级黑马   /  2019-1-14 14:15  /  703 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

刚入黑马几天,学了一点敲代码,现在给大家看看如何用java敲出金字塔啦
1问题
打印出”*“金字塔图
2.分析
这时一个很经典的循环应用的问题。我们都知道,打印输出的时候,都是从
最左端输出,先出空格,然后打印*,这实际是因为三角形之前有很多空格。

3.确定框架
public class ZiJinTa{   
       public static void main(String[] args)    {   
            for(i = 1; i<= 5; i++)   //循环5次,打印5行  {
          //打印若干空格           //打印若干符号        }  
  }

//2.寻找空格和*规律
/*行数  空格数  符号数
1     4            5-1   1  1*2-1
2     3            5-2   3  2*2-1
3      2            5-3   5  3*2-1
4      1            5-4   7  4*2-1
5     0            5-5   9  5*2-1 规律  依次递减1  5-行数  依次递增2  行数*2-1
*/
//3.打印空格数
//由于每行空格数有“5-行数”的规律,对应代码如下:
for(i =1; i<= n; i++)
{
    for(j = 1; j <= n – i; j++)    //根据外层行号,输出符号左边空格
       System.out.println(“ ”);
}
//4.打印*号
//由于每行符号数有着“行数*2-1”的规律,对应代码如下:
for(i =1; i<= n; i++)
{
    for(k = 1; j <= i * 2 -1; k++) //根据外层行号,输出符号数
       System.out.println(“*”);
}
因此,整个流程已经列清楚了,金子塔也能出来,那么问题来了,如和打印倒数金字塔呢

代码如下:
public class ZiJinTa {
              public static void main(String[] args) {
             //假设打印5层金字塔,那么第一层就有9个*号
                     int layer=5;
                    for(int =1;i<=layer;i++){
                           for(int j=1;j<=i;j++){
                      //首先要打印空格,找出空格规律
                                  System.out.print(" ");
                             }
                      for(int f=9;f>0&&f>=2*i-1;f--){
                             System.out.print("*");
                            }
                                System.out.println();
                             }  
}

大家看懂了吗,嘿嘿,有点小难哎

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马