作者pziyout (pziyout)
看板Programming
标题Re: [问题] c语言圣诞树并排
时间Wed Apr 29 11:56:31 2009
这只是一个普通的逻辑题目,只要注意回圈下标之间的关系即可,
以下是用 C++ 写的:
cout << "> tree number : " ;
cin >> n ;
for ( j = 1 ; j <= 3*n+1 ; ++j ) {
for ( i = 1 ; i <= 2*n-1 ; ++i ) {
k = ( i <= n ? i : 2*n-i ) ;
if ( j <= 3*(n-k) ) {
cout << string(4*k+1,' ') ;
} else if ( j <= 3*(n-k)+2*k+1 ) {
cout << string(3*n-k-j+1,' ')
<< string(2*(j-3*(n-k))-1,'*')
<< string(3*n-k-j+1,' ') ;
} else {
cout << string(2*k,' ') << '|' << string(2*k,' ') ;
}
cout << " " ;
}
cout << endl ;
}
cout << string(4*n*n+4*n-3,'=') << endl ;
输出:
> tree number : 2
*
***
*****
* ******* *
*** ********* ***
***** | *****
| | |
=====================
> tree number : 3
*
***
*****
* ******* *
*** ********* ***
***** *********** *****
* ******* ************* ******* *
*** ********* | ********* ***
***** | | | *****
| | | | |
=============================================
> tree number : 4
*
***
*****
* ******* *
*** ********* ***
***** *********** *****
* ******* ************* ******* *
*** ********* *************** ********* ***
***** *********** ***************** *********** *****
* ******* ************* | ************* ******* *
*** ********* | | | ********* ***
***** | | | | | *****
| | | | | | |
=============================================================================
输出还满好看的。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.25.24
1F:推 costbook:图案有那麽一点点碎形的味道 203.68.92.156 04/29 12:09
2F:推 bobju:这个比较漂亮 :) 59.104.191.26 04/29 14:21