黑马程序员技术交流社区

标题: 打印这样的图形大家怎么写? [打印本页]

作者: 汤瑞贺    时间: 2012-11-22 01:32
标题: 打印这样的图形大家怎么写?
(在ASP.net交流区看到的一题,自己用用java写了此题)
作者: 汤瑞贺    时间: 2012-11-22 01:35
本帖最后由 汤瑞贺 于 2012-11-22 01:37 编辑

我这样写的。。
  1. class  BendLine
  2. {        static char[][] ch=new char[20][20];
  3.         static int length=ch.length-1;
  4.         public static void main(String[] args)
  5.         {
  6.                 int x,y;        
  7.                 for(x=0;x<length+1;x++)//初始化字符数组
  8.                         for(y=0;y<length+1;y++)
  9.                         ch[x][y]=' ';
  10.                 x=y=length;
  11.                 int count=0;
  12.                 while(count<(length+1)/2)
  13.                 {
  14.                         if(count%2==1)
  15.                         area(x,y,'*');
  16.                         else
  17.                         area(x,y,' ');
  18.                         
  19.                         x--;
  20.                         y--;
  21.                         count++;
  22.                         
  23.                 }
  24.                
  25.                 for(x=0;x<length+1;x++)
  26.                 {
  27.                         System.out.print(ch[x]);
  28.                         System.out.println("");
  29.                 }
  30.                
  31.         }
  32.         static void area(int x,int y,char c)
  33.         {        
  34.                 int i=length-x;
  35.                 int j=length-y;
  36.                 int n=0;
  37.                 int k=1;
  38.                 while(n<4)
  39.                 {        
  40.                         if(n==0 && i<x)//n==0指左边
  41.                                 ch[i++][j]=c;
  42.                         else if(n==0)
  43.                         {n++;i=x;}

  44.                         if(n==1 && j<y)//n==1指下边
  45.                                 ch[i][j++]=c;
  46.                         else if(n==1)
  47.                         {n++;j=y;}

  48.                         if(n==2 && i>length-x)//n==2指右边
  49.                                 ch[i--][j]=c;
  50.                         else if(n==2)
  51.                         {n++;j=x;}
  52.                         if(n==3 && j>length-x)//n==3指上边
  53.                                 ch[i][j--]=c;
  54.                         else if(n==3)
  55.                         {n++;}

  56.                 }//while
  57.                 if(ch[length-x+1][y]=='*')
  58.                         ch[length-x+1][y]=' ';
  59.                 else
  60.                         ch[length-x+1][y]='*';                        
  61.         }
  62. }
复制代码

作者: 张海涛    时间: 2012-11-22 02:04
不错不错!
作者: 王斌    时间: 2012-11-22 11:14
佩服,佩服
作者: 郭凯    时间: 2012-11-22 13:15
向高人学习!




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