Java 打印输出空心菱形

<

div id=”content” contentScore=”492″>思路:

设座标原点为   0,0

设菱长为   len

则纵轴横座标也是   len

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

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

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

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

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

<

ol>

  • public class Test {   
  •  public static void main(String args[]){   
  •   
  • public   static   void   main(String[]   args)   {    
  •   int   len=2;   //菱长    
  •   String   outstr=” “//输出    
  •   int   i,j,x,y;    
  •    for(i=0;i <=len2;i++)   
  •    {    
  •     for(j=0;j <=len2;j++)   
  •     {    
  •      x=len-i;    
  •      x=x <0?-1x:x;    
  •      y=len+(len-x);    
  •      outstr+=(j==x||j==y? ” “);    
  •     }    
  •    outstr+= “\n “;    
  • <sp