我一直在嘗試使用用戶輸入的大小繪制圣誕樹(打印到控制臺)。我也一直在試圖找出邏輯,比如空間會占用。對我來說,任何一個都會很棒。此外,此實驗室只需要一個循環(huán),并且必須調(diào)用我在下面提供的方法寫入模式。非常感謝。hintfor抱歉,如果代碼太長。這只是為了確保你們能夠理解它。以下是我應該使用輸入4顯示的輸出:for (int i=0; i <=size; i++) { writePattern (' ','*',' ', ' ',' ',size -i,i,0,0,0,size+2); writePattern (' ','*','*',' ',' ',size -i,i,i,0,0,size+2); }這就是我上面提到的wrirePattern。private void writePattern(char ch1, char ch2, char ch3, char ch4, char ch5, int n1, int n2, int n3, int n4, int n5, int length) {while ((n1 > 0) && (length > 0)) { System.out.print(ch1); n1--; length--; } while ((n2 > 0) && (length > 0)) { System.out.print(ch2); n2--; length--; } while ((n3 > 0) && (length > 0)) { System.out.print(ch3); n3--; length--; } while ((n4 > 0) && (length > 0)) { System.out.print(ch4); n4--; length--; } while ((n5 > 0) && (length > 0)) { System.out.print(ch5); n5--; length--;}System.out.println(); }這是來自另一個用于提供輸出的類:drawer.drawXmasTree(); System.out.println("\n");;
1 回答

慕萊塢森
TA貢獻1810條經(jīng)驗 獲得超4個贊
輸出有 2 個部分。
有樹的(頂部),用? 字符。leaves
trunk
newline
葉:
從頂部開始,您會注意到第一個星號之前有空格。上面的行將有 ,然后是下一行,依此類推,直到空格數(shù)變?yōu)?。size
size-1
size-2
0
但是,此模式是不完整的。它只會給你每行的第一個星號。請注意(再次從頂部開始)第一個星號后面有 0 個空格,第二個星號后面有 1 個空格(沒有第二個星號),依此類推,直到最后一行。
使用此模式和葉子可能是一個簡單/容易(希望)的任務。
樹干:
每個星號后面沒有空格。
從頂部開始,它打印出空格,然后打印出包含星號的行。然后它打印出空格,緊接著,每個星號行。size-1
1
1
size-2
2
3
這種模式繼續(xù),每次空格數(shù)減少時,用這種寬度打印的行數(shù)增加(兩個方向多一個寬度),并且那里的行數(shù)增加一倍。1
2
1
如果我犯了錯誤,請糾正我。這個答案純粹是關于如何打印它的邏輯;這當然需要翻譯成適當?shù)拇a才能運行。
添加回答
舉報
0/150
提交
取消