打印规则星图 空心星图 (如有漏洞请指出)

2010-05-01 15:40


package print_pic;

import java.util.Scanner;

public class _star {
public static void main(String[] args) {
   Scanner sc = new Scanner(System.in);
   System.out.println("请输入行数:");
   int line = sc.nextInt();
   while(line%2==0) {
    System.out.println("请输入奇数行:");
    line=sc.nextInt();
   }
   _star p = new _star();
   System.out.println("打印实心星图");
   p.display1(line);
   System.out.println("打印空心星图");
   p.display2(line);
}

public void display1(int lin)// 显示实心星图
{
   for (int i = 1; i <= lin ; i++) {
    if(i<=(lin+1)/2){
     for (int j = 1; j<=3+(lin+1)/2-i; j++) {
      System.out.print(" ");
     }
     for (int j=1;j<=2*i-1 ;j++ ) {
      System.out.print("*");
     }
     System.out.println();
    }else{
     for (int j = 1; j<=3+i-(lin+1)/2; j++) {//a1+(n-1)d
      System.out.print(" ");
     }
     for (int j=1;j<3+2*lin-2*i-1;j++ ) {//a1-(n-1)d;2lin-1-(i-lin-1)2
      System.out.print("*");
     }
     System.out.println();
    }
   }
}

public void display2(int lin)// 实现空心星图
{
   for (int i = 1; i <= lin ; i++) {
    if(i<=(lin+1)/2){
     for (int j = 1; j<=3+(lin+1)/2-i; j++) {
      System.out.print(" ");
     }
     for (int j=1;j<=2*i-1 ;j++ ) {
      if(i!=1&&j==1||j==2*i-1)
       System.out.print("*");
      else System.out.print(" ");
     }
     System.out.println();
    }else
    {
     for (int j = 1; j<=3+i-(lin+1)/2; j++) {//a1+(n-1)d
      System.out.print(" ");
     }
     for (int j=1;j<=3+2*lin-2*i-2;j++ ) {//a1-(n-1)d;2lin-1-(i-lin-1)2
      if(i!=lin&&j==1||j==3+2*lin-2*i-2)
       System.out.print("*");
      else System.out.print(" ");
     }
     System.out.println();
    }
   }
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值