三角数

三角数とは、自然数を順次加えることで求められる数のことです。具体的には、

1
3  (=1+2)
6    (=1+2+3)
10  (=1+2+3+4)
15  (=1+2+3+4+5)
...

となります。
これをどうして三角数と言うのかは、米俵を三角形に積み上げていった時の様子を思い浮かべていただければ分かるかと思います。

ここでは、
・先頭からn個の三角数を求める
・三角数かどうかを調べる
・n番目の三角数を求める

という3つのプログラムを書いてみました。


n番目の三角数を t(n) とすると、

t(1) = 1
t(n) =  t(n-1) + n

と定義できますので、「n番目の三角数を求める」コードは再帰を使いましたが、n が大きな数の場合は、あまり効率的ではありませんね。「隣り合う2つの三角数の和は、平方数になる」という性質や、「三角数かどうかを判定する」コードで使った、三角数の判定の公式などを応用するれば、もっと効率的なコードが書けそうですが、そこまではやっていません。
興味のある方は、チャレンジしてみてください。

以下に、C#+Silverlightのコードを示します。

■TriangleNumber.cs
 

■MainPage.xaml.cs
 
  
■MainPage.xaml