用Java打印实心菱形

前两天面试时的一道题

打印效果如下:

   *
  ***
 *****
*******
 *****
  ***
   *

分析本质是下面这个图:

AAAB
AABBB
ABBBBB
BBBBBBB
ABBBBB
AABBB
AAAB

思路是把菱形分两部分,前面四行是一部分,后面三行是一部分。

我脑子确实不灵活,想了有俩小时才想出来:

public class Test{
	public static void main(String[] args) {
		for (int a=1,b=3,c=1;a<=4 && b>=0 && c<=7;a++,b--,c=c+2){
			for(int d=b;d>=1;d--){
				System.out.print(' ');
			}
			for(int e=1;e<=c;e++){
				System.out.print('*');
			}
			System.out.println();
		}
		for (int a=1,b=5;a<=3 && b>=1;a++,b=b-2){
			for(int c=1;c<=a;c++){
				System.out.print(' ');
			}
			for(int d=b;d>=1;d--){
				System.out.print('*');
			}
			System.out.println();
		}
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值