どう書くお題を解いてみた件について
doukaku.orgにて、「LL Gold Hole 8 − 横向きのピラミッドを作る」にチャレンジしました。アルゴリズムの候補としては候補として以下の3つがあると考え作業を行いました。
- 2重forループ
- Enumerableで要素生成
- 再帰
最初に再帰アルゴリズムで実装しましたが、型付言語ではかえって冗長なコードになると思い廃棄*1。力技コーダを脱却する為、二重forループは避けてEnumerableで要素生成を行いましたが、結局以下のコードに落ち着きました。
やはりLL系の言語と比べると、型付言語はCollection関係の操作が弱いですね…。
using System; class L { static void Main(string[] a) { int n = int.Parse(a[0]); foreach (int m in System.Linq.Enumerable.Range(-n, n * 2)) Console.WriteLine(new string('*', n - Math.Abs(m))); } }