用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();
		}
	}
}



posted @ 2022-04-29 22:35  WORDLESS  阅读(17)  评论(0编辑  收藏  举报