Re:ピラミッドを作る, 横向きのピラミッドを作る
お題:
Server error
Server error
投稿:
Server error
Server error
縦向きと横向きのピラミッドを作るお題を解いてみました。
両方とも、今さら感がありますが、気にせず投稿。
投稿したコード
(動作確認: Groovy Version: 1.5.7 JVM: 1.6.0_10)
// 縦向きピラミッド def pyramidVertical(num) { (1..num).collect{ '*' * (it * 2 -1) }.with{ delegate*.center(delegate*.size().max()) }.join('\n') } // 横向きピラミッド def pyramidHorizontal(num){ def adder = { base, add -> [add, base, add].join('\n') } ((num - 1)..1).inject('*' * num){ rslt, it -> adder(rslt, '*' * it) } } println pyramidVertical(4) // 縦向き println pyramidHorizontal(4) // 横向き
出力結果
縦向き
*
***
*****
*******
横向き
*
**
***
****
***
**
*
考察
とりあえず、既出で色々出ていたので、まだ出ていないアイデアで書いてみました。
縦向きはcollectしてcenterして、それをwithで繋いで頑張りました。
横向きはただinjectが使いたかっただけです(笑) 出来上がった文字列の前後に*を足していく感じです。