前書き
数学では、多角形の数は、通常の多角形の形状に配置された点または小石として表される数です。ドットはアルファ(単位)と見なされます。これらは、2次元の数字の1つのタイプです。
たとえば、番号10は三角形として配置できます。
* ** *** ****
ただし、10個を正方形として配置することはできません。一方、番号9は次のようになります。
*** *** ***
36などのいくつかの数値は、正方形と三角形の両方として配置できます。
****** * ****** ** ****** *** ****** **** ****** ***** ****** ******
慣例により、1は任意の数の辺の最初の多角形番号です。ポリゴンを次のサイズに拡大するルールは、2つの隣接するアームを1ポイント拡張し、それらのポイント間に必要な余分な辺を追加することです。次の図では、追加の各レイヤーが赤で示されています。
三角数字:
平方数:
五角形や六角形など、より多くの辺を持つ多角形もこの規則に従って構築できますが、ドットは上記のような完全に規則的な格子を形成しなくなります。
五角形の番号:
六角形の番号:
ソース: ウィキペディア
あなたのタスク
正の整数N(1 <= N <= 1000)を指定すると、すべてのタイプの多角形数Nを出力します多角形、三角形から20角形(20角。
たとえば、10という数値は三角形と10進数であるため、出力は次のようになります(独自の出力形式を選択できますが、次のようになります)。
3 10
テストケース
1 -> 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
2 -> (None)
3 -> 3
6 -> 3 6
36 -> 3 4 13
参考のため、n
-th k
-gonal番号は次のとおりです。
クレジット:xnor
これはcode-golfであるため、バイト数が最も少ないコードが優先されることに注意してください。
n
k番目の対角数は(k-2)*n*(n-1)/2 + n
です。