【JAVA】打印出菱形

課後作業之“可愛”的菱形

需要打印出 這樣的形狀<實菱>
圖片1
和這樣的形狀<空菱>
圖片2
所以我複習了一下小學數學找規律【假的,複習也複習不好了。。】

下面是我的思路:

就簡單的找一下各行空格和星號的關係,把空格的地方補出來,只考慮每行最後一個星號之前的空格,不用思考之後的。然後按每一行做最外面的循環,再根據每行星號和行號的關係,用小循環輸出相應個數的空格或者星號。

自我感覺就是腦子成了一團漿糊之後,先輸出來看看結果,再根據與題設不相同的點去修改,更直觀一點~

代碼:

package CH04_05;

public class CH04_05 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int lay;
		lay = 7;
		//圖形1
		for(int i=1;i<=(lay+1)/2;i++) {
			for(int j=1;j<=(lay+1)/2-i;j++) {
				System.out.print(" ️");
			}
			for(int k=1;k<=i*2-1;k++) {
				System.out.print("*️");
			}
			System.out.println();
		}
		for(int i = (lay+1)/2-1;i>=1;i--) {//逆序輸出
			for(int j=1;j<=(lay+1)/2-i;j++) {
				System.out.print(" ️");
			}
			for(int k=1;k<=i*2-1;k++) {
				System.out.print("*️");
			}
			System.out.println();
		}
		System.out.println();
		
		//圖形2
		for(int i=1;i<=(lay+1)/2;i++) {
			for(int j=1;j<=(lay+1)/2-i;j++) {
				System.out.print(" ️");
			}
			    System.out.print("*️");
			for(int l=1;l<=i*2-3;l++) {
				System.out.print(" ️");
			}
			if(i!=1 && i!=lay) 
				System.out.print("*️");
			System.out.println();
		}
		for(int i = (lay+1)/2-1;i>=1;i--) {//逆序輸出
			for(int j=1;j<=(lay+1)/2-i;j++) {
				System.out.print(" ️");
			}
			    System.out.print("*️");
			for(int l=1;l<=i*2-3;l++) {
				System.out.print(" ️");
			}
			if(i!=1 && i!=lay) 
				System.out.print("*️");
			System.out.println();
		}

	}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章