Java 打印输出空心菱形


思路:

设座标原点为   0,0

设菱长为   len

则纵轴横座标也是   len

则最大横座标及总行数都是len*2

那第i行的第一个实心点 x的横座标是 len-i的绝对值(len指纵轴横座标) 

则第i行的第二个实心点 y 的横座标是 len+(len-x)   (len同上,x指x点的横座标)

循环判断第i行的每一个点是不是 x 或 y点,如果是,则输出 * ,否则输出汉字空格。

注意 len 为两个 * 之间的距离,所以三个* 是两个长度

  1. public class Test {   
  2.  public static void main(String args[]){   
  3.   
  4. public   static   void   main(String[]   args)   {    
  5.   int   len=2;   //菱长    
  6.   String   outstr=" "//输出    
  7.   int   i,j,x,y;    
  8.    for(i=0;i <=len*2;i++)   
  9.    {    
  10.     for(j=0;j <=len*2;j++)   
  11.     {    
  12.      x=len-i;    
  13.      x=x <0?-1*x:x;    
  14.      y=len+(len-x);    
  15.      outstr+=(j==x||j==y? "*"" ");    
  16.     }    
  17.    outstr+= "\n ";    
  18.    }    
  19.   System.out.println(outstr);    
  20.   }    
  21.  }  

相关内容