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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

汤瑞贺

中级黑马

  • 黑马币:7

  • 帖子:53

  • 精华:0

© 汤瑞贺 中级黑马   /  2012-11-22 01:32  /  1639 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

(在ASP.net交流区看到的一题,自己用用java写了此题)

4 个回复

倒序浏览
本帖最后由 汤瑞贺 于 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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

回复 使用道具 举报
不错不错!
回复 使用道具 举报
佩服,佩服
回复 使用道具 举报
向高人学习!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马