作者pziyout (pziyout)
看板C_and_CPP
標題Re: [問題] C語言聖誕樹並排
時間Wed Apr 29 11:17:17 2009
改一下題目,讓樹根貼齊地面:
int i , j , n ;
cout << "> tree number : " ;
cin >> n ;
for ( j = 1 ; j <= 3*n+1 ; ++j ) {
for ( i = 1 ; i <= n ; ++i ) {
if ( j <= 3*(n-i) ) {
cout << string(4*i+1,' ') ;
} else if ( j <= 3*(n-i)+2*i+1 ) {
cout << string(3*n-i-j+1,'-')
<< string(2*(j-3*(n-i))-1,'*')
<< string(3*n-i-j+1,'-') ;
} else {
cout << string(2*i,'-') << '*' << string(2*i,'-') ;
}
cout << " " ;
}
cout << endl ;
}
輸出:
> tree number : 3
------*------
-----***-----
----*****----
----*---- ---*******---
---***--- --*********--
--*****-- -***********-
--*-- -*******- *************
-***- ********* ------*------
***** ----*---- ------*------
--*-- ----*---- ------*------
> tree number : 4
--------*--------
-------***-------
------*****------
------*------ -----*******-----
-----***----- ----*********----
----*****---- ---***********---
----*---- ---*******--- --*************--
---***--- --*********-- -***************-
--*****-- -***********- *****************
--*-- -*******- ************* --------*--------
-***- ********* ------*------ --------*--------
***** ----*---- ------*------ --------*--------
--*-- ----*---- ------*------ --------*--------
若程式稍加修改,可以對稱方式輸出 :
> tree number : 2
----*----
---***---
--*****--
--*-- -*******- --*--
-***- ********* -***-
***** ----*---- *****
--*-- ----*---- --*--
> tree number : 3
------*------
-----***-----
----*****----
----*---- ---*******--- ----*----
---***--- --*********-- ---***---
--*****-- -***********- --*****--
--*-- -*******- ************* -*******- --*--
-***- ********* ------*------ ********* -***-
***** ----*---- ------*------ ----*---- *****
--*-- ----*---- ------*------ ----*---- --*--
※ 編輯: pziyout 來自: 140.115.25.24 (04/29 11:26)
→ final01:XD 04/29 11:32
→ VictorTom:(指)你們這些人越來越過份了....XDDD 04/29 12:26
→ VictorTom:(邪惡)有沒有大樹裡面長小樹的, 用數字取代*這樣XDDD 04/29 12:28
推 llama:像大鑽石裡頭包小鑽石嗎XD 04/29 12:39
推 VictorTom:Yes~不過, 中午這種用餐時間, 用大腸包小腸更簡單易懂XD 04/29 12:45