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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

在屏幕上打印出n行的金字塔图案,如,若n=5,则图案如下:

*

***

*****

*******

*********

此题我在网上找到好多不同的答案 可是最后运行的效果都不太好 求高手给出程序

评分

参与人数 1黑马币 +6 收起 理由
Rancho_Gump + 6 赞一个!

查看全部评分

7 个回复

倒序浏览
这是一个学长给出的答案 分享给大家 这个可以运行出来 但是感觉有点麻烦
public class PrintStar{

public static void main(String args[]){

int col = Integer.parseInt(args[0]);

for(int i=1;i<=col;i++){//i表示行数

//打印空格

for(int k=0;k<col-i;k++){

System.out.print(” “);

}

//打印

for(int m=0;m<2*i-1;m++){

System.out.print(“*”);

}

System.out.println();

}

}

}

回复 使用道具 举报
多看看比向东老师的视频,思想是嵌套循环思想,如:
class HuiDa
{
       public static viod main(String[] args)
      {
           //这里的for循环体控制行
           for(int  x = 1 ; x < =5 , x++)
           {
                //这里的循环体控制列
                for(int y =1; y < =5 , x++)
                {
                     System.out.print("* " );
                }
                System.out.println();//表示换行的作用
           }
      }
}
回复 使用道具 举报
public class toBinaryString {

        public static void main(String[] args) {
                int n=10;                                                                                //需要层数
       
                for(int i=0;i<n;i++)                                                //层数控制
                {
                        for(int j=0;j<=i;j++)                                //每层*的个数
                        {
                                System.out.print("*");
                        }
                        System.out.println();
                }

        }

}
回复 使用道具 举报
刚没看清楚,是单数行打印啊,不好意思。

public static void main(String[] args)
        {
                int n=10;                                                                                //需要层数,自定义了10层,也可以后台输入所需的
       
                for(int i=0;i<2*n;i++)                                                //层数控制
                {
                        if(i%2==0)                                                                        //判断奇数层打印
                        {
                                for(int j=0;j<=i;j++)                                //每层*的个数
                                {
                                        System.out.print("*");
                                }
                        }
                       
                        System.out.println();
                }
回复 使用道具 举报
class Day03
{
        public static void main(String[] args)
        {
                int n;
                n=5;
                for(int i=1;i<=n;i++)
                {
                        for(int j=1;j<=2*i-1;j++)  //打印的个数
                                System.out.print("*");
                        System.out.println("");//换行
                }
        }
}
这是我写的,运行了下还行

点评

这个好简洁  发表于 2013-1-28 23:11
回复 使用道具 举报
李挺 中级黑马 2013-1-27 21:29:13
7#
现在看到第三天的课程,以前学过C,n的值要是需要输入的话,C里面是scanf函数,不知道java怎么弄
回复 使用道具 举报
本帖最后由 zyx67786110 于 2013-1-28 16:18 编辑
  1. public class PrintTrangle
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                         printTrangle(5);        
  6.         }
  7.         public static void printTrangle(int len)
  8.         {
  9.                 //控制要打印多少行
  10.                 for(int x =0;x<len;x++)
  11.                 {
  12.                         //控制每行要打印多少空格
  13.                         for(int i=(len-1)-x;i>0;i--)
  14.                         {
  15.                                 System.out.print(" ");
  16.                         }
  17.                         //控制每行要打印多少*
  18.                         for(int y = 0;y<2*x+1;y++)
  19.                         {
  20.                                 System.out.print("*");
  21.                                 
  22.                         }
  23.                         //每行打印完后结尾换行
  24.                         System.out.println();
  25.                 }               
  26.         }
  27.         
  28. }
复制代码
结果如下:   
       *
     ***
   *****
  *******
*********
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马