编写打印如下的*号,帮帮忙了,看看谁写的即简单又实用
*******
 *****
  ***
   *
  ***
 *****
*******

解决方案 »

  1.   

    System.out.println("*******");
            System.out.println(" *****");
            System.out.println("  ***");
            System.out.println("   *");
            System.out.println("  ***");
            System.out.println(" *****");
            System.out.println("*******");符合简单实用的标准不?
      

  2.   

    无聊的小顶一下
    public class Test9 {
    public static void main(String[] args) {
    int n = 20;
    int width = 2 * n - 1;
    char[] c = new char[width];
    for(int i=0; i<width; i++)
    c[i] = '*';
    int big = width -1;
    int small = 0;
    for(int i=0; i<n-1; i++) {
    System.out.println(c);
    c[big] = ' '; big--;
    c[small] = ' '; small++;
    }
    for(int i=n; i<2*n-1; i++) {
    System.out.println(c);
    big++; c[big] = '*'; 
    small--; c[small] = '*';
    }
    System.out.println(c);
    }
    }
      

  3.   

    joejoe1991()  真是服了你了,不过这种方法我已经知道了,假如把那个打印数扩大10倍呢,再改改吧
      

  4.   

    又是这种题呢  for(int i=1,len=7;i<=len;i++)
        for(int j=1;j<=len;j++)
          System.out.print((Math.abs(j-len/2-1)<=Math.abs(len/2-i+1)?"*":" ")+(j==len?"\n":""));
      

  5.   

    扩大10倍:
    C:\java>java test
    **********************************************************************
     *********************************************************************
      *******************************************************************
       *****************************************************************
        ***************************************************************
         *************************************************************
          ***********************************************************
           *********************************************************
            *******************************************************
             *****************************************************
              ***************************************************
               *************************************************
                ***********************************************
                 *********************************************
                  *******************************************
                   *****************************************
                    ***************************************
                     *************************************
                      ***********************************
                       *********************************
                        *******************************
                         *****************************
                          ***************************
                           *************************
                            ***********************
                             *********************
                              *******************
                               *****************
                                ***************
                                 *************
                                  ***********
                                   *********
                                    *******
                                     *****
                                      ***
                                       *
                                      ***
                                     *****
                                    *******
                                   *********
                                  ***********
                                 *************
                                ***************
                               *****************
                              *******************
                             *********************
                            ***********************
                           *************************
                          ***************************
                         *****************************
                        *******************************
                       *********************************
                      ***********************************
                     *************************************
                    ***************************************
                   *****************************************
                  *******************************************
                 *********************************************
                ***********************************************
               *************************************************
              ***************************************************
             *****************************************************
            *******************************************************
           *********************************************************
          ***********************************************************
         *************************************************************
        ***************************************************************
       *****************************************************************
      *******************************************************************
     *********************************************************************
      

  6.   

    zephyr_cc() 谢谢你啊,我看起来比较累啊,能解释一下吗,你是采取什么样的算法?
      

  7.   

    zapdos() 谢谢你哦,不过我看不懂啊,尤其是你输出的语句,abs代表什么?详细解释一下吧,我初学的
      

  8.   

    zapdos() 强啊,打心眼里佩服,拜你为师!!!
      

  9.   

    class Test 
    {
    public static void main(String[] args) 
    {
    print(8,2,'*');
    }
    public static void print(int start,int step,char ch){
    if(start<=0||step<=0)return;
    int i=0;
    for(i=start;i>0;i-=step){
    for(int j=0;j<i;j++)
    System.out.print(ch);
    System.out.println();
    }
    for(i+=2*step;i<=start;i+=step){
    for(int j=0;j<i;j++)
    System.out.print(ch);
    System.out.println();
    }
    }
    }
      

  10.   

    呵呵,第一次有人说俺强,其实这些读过高中的人都可以写得出来,里面就是一个图形的表达式而已
    比如,圆:(x^2+y^2=r^2)
    for(int i=1,len=30;i<=len;i++)
      for(int j=1;j<=len;j++)
        System.out.print((Math.pow(j-len/2-1,2)+Math.pow(i-len/2-1,2)<=169?"*":" ")+(j==len?"\n":" "));C:\java>java test
                                  *
                        * * * * * * * * * * *
                      * * * * * * * * * * * * *
                  * * * * * * * * * * * * * * * * *
                * * * * * * * * * * * * * * * * * * *
              * * * * * * * * * * * * * * * * * * * * *
              * * * * * * * * * * * * * * * * * * * * *
            * * * * * * * * * * * * * * * * * * * * * * *
          * * * * * * * * * * * * * * * * * * * * * * * * *
          * * * * * * * * * * * * * * * * * * * * * * * * *
          * * * * * * * * * * * * * * * * * * * * * * * * *
          * * * * * * * * * * * * * * * * * * * * * * * * *
          * * * * * * * * * * * * * * * * * * * * * * * * *
        * * * * * * * * * * * * * * * * * * * * * * * * * * *
          * * * * * * * * * * * * * * * * * * * * * * * * *
          * * * * * * * * * * * * * * * * * * * * * * * * *
          * * * * * * * * * * * * * * * * * * * * * * * * *
          * * * * * * * * * * * * * * * * * * * * * * * * *
          * * * * * * * * * * * * * * * * * * * * * * * * *
            * * * * * * * * * * * * * * * * * * * * * * *
              * * * * * * * * * * * * * * * * * * * * *
              * * * * * * * * * * * * * * * * * * * * *
                * * * * * * * * * * * * * * * * * * *
                  * * * * * * * * * * * * * * * * *
                      * * * * * * * * * * * * *
                        * * * * * * * * * * *
                                  *棱形:(|x-a/2|+|y-a/2|=a/2)
    for(int i=1,len=7;i<=len;i++)
      for(int j=1;j<=len;j++)
        System.out.print((Math.abs(j-len/2-1)<=len/2-Math.abs(i-len/2-1)?"*":" ")+(j==len?"\n":""));C:\java>java test
       *
      ***
     *****
    *******
     *****
      ***
       *
    ......
      

  11.   

    zapdos() 非常感谢你啊,过两天把分都给你们,但我还是不懂?
    这个|x-a/2|+|y-a/2|=a/2 和 这个(Math.abs(j-len/2-1)<=len/2-Math.abs(i-len/2-1)  怎么扯上的?
    这个三元运算符我知道,但是这个算法是怎么实现的?abs(j-len/2-1)求什么的绝对值?为什么这样求啊?(Math.abs(j-len/2-1)<=len/2-Math.abs(i-len/2-1)啥意思?
      

  12.   

    这个你可以把嵌套的循环看作是一个坐标,因此j=x,i=y
    len是长度,所以len=a
    代进去变换一下就得到了
    因为数组从0开始,所以另外有-1修正所以,在坐标上画圆跟在这个矩阵里画是一样的<=表示在范围内符合条件的点都点上*,否则填上空格
    所以这个图形就出来了
      

  13.   

    我也看不懂,
    zapdos()  能不能再解释下,先认真研究下先
      

  14.   

    char[] c = new char[];
    for(int i = 0;i<c.length;i++){
       c[i] = *;
       
    }
    for(int i = n;i>0;i--)
    {}
      

  15.   

    public static void main(String[] arg) {  final int LINE = 7;
      
      // 算法1
      for (int i = -LINE / 2; i <= LINE / 2; i++) {
        for (int j = 1; j <= 2 * Math.abs(i) + 1; j++) {
          System.out.print("*");
        }
        System.out.println();
      }
      
      System.out.println();
      
      // 算法2:这个比较有意思
      int tmp = (LINE / 2 + 1) * (LINE / 2 + 1);
      for(int i = -tmp + 1 ; i <= tmp; i++ ){  
        if(i == 1) {
          continue;
        }
        System.out.printf("%c%s", '*', (Math.sqrt(Math.abs(i)) % 1 == 0) ? "\n" : "");
      }
    }
      

  16.   

    char[] c = new char[7];//数组的长度是第一行的星星的个数
    for(int i = 0;i<c.length;i++)
    {
       c[i] = '*';
    }
            int first = 0;
      int last = c.length-1;
    for(int i = 7;i>0;i--)
    {
      if(first ==0)
          System.out.println(c);
      c[first] =' ';
      c[last] = ' ';
      
      first++;
      last --;
      System.out.println(c);
      
      if(first == last)
    {
      while( first != c.length && last != 0)
    {c[++first] = '*';
    c[--last] ='*';
    System.out.println(c);
    }
    return;
    }
    我测试过的,看看行不!
     
      }
      

  17.   

    to:zapdos()
    ____________________________你画出来的圆和菱形为什么只有右边一半,左边一半怎么没了?那你使用 ★ 画一个像一笔画画出来的五角星,要求可以更改五角星的半径,并能根据角度旋转,在控制台上输出。有空可以琢磨一下。
      

  18.   


    public class tt {
    public void qq(int i){
    int c=i/2;
    if(i%2>0)
    {
    c=c+1;
    }
    for(int w=1;w<=c;w++){
    for(int p=0;p<w-1;p++){
    System.out.print(" ");
    }
    for(int j=0;j<i-(w-1)*2;j++){
    System.out.print("*");
            }
    System.out.println("");
    }
    for(int w=c-1;w>=1;w--){

    for(int p=w-1;p>0;p--){
    System.out.print(" ");
    }
    for(int j=i-(w-1)*2;j>=1;j--){
    System.out.print("*");
            }
    System.out.println("");
    }
    }public void aa()
    {
    int i=Math.round(7/2);
    System.out.print(i);
    }
    public static void main(String args[]){
    tt t=new tt();
    t.qq(20);
    //t.aa();
    }
    }
      

  19.   

    to bao110908(火龙果) 
    ------------------------
    左边?不是有么?
    至于画星,这个,用graphs 2d应该挺容易的用控制台输出的话,应该会挺麻烦的
    思路:
    根据星的中心,算出星形的点坐标,控制坐标的范围在控制台可容纳之内,按顺序存入数组
    用嵌套的循环打印图形,另做方法f()决定显示*还是空格,传入当前点坐标i,j
    f方法内,遍历10个顶点,判断i,j与 星星上每2个相邻顶点联结成的点 的关系 是否跟中心与 星星上每2个相邻顶点联结成的点 的关系相同(因中心在星区域内,所以这步实际是判断当前点是否在星区域内)
    要点线判断关系,可以算出连线的截距与斜率,再代入当前点坐标,即可判断与直线的关系
      

  20.   

    to: zapdos我的想法和你的不一样,五角星也是在一个圆中的,只要得到五个点的坐标,画五条字符线就可以了。
      

  21.   

    to bao110908(火龙果)
    你写的代码怎么编译那么多错误啊?有测试吗?说说你的算法思想吧?
      

  22.   

    to zapdos() 
    那你写这个倒塔是根据:(|x-a/2|+|y-a/2|=0)来写的?