直鎖alk * neは、単結合(アルカン)、二重結合(アルケン)、三重結合(アルキン)で接続された一連の炭素原子として定義されます(暗黙の水素が使用されます)。炭素原子は4つの結合しか形成できません。炭素原子に4つを超える結合を強制することはできません。直鎖alk * neは、その炭素-炭素結合のリストとして表すことができます。
これらは、有効な直鎖アルケンのいくつかの例です:
[] CH4 Methane
[1] CH3-CH3 Ethane
[2] CH2=CH2 Ethene
[3] CH≡CH Ethyne
[1,1] CH3-CH2-CH3 Propane
[1,2] CH3-CH=CH2 Propene
[1,3] CH3-C≡CH Propyne
[2,1] CH2=CH-CH3 Propene
[2,2] CH2=C=CH2 Allene (Propadiene)
[3,1] CH≡C-CH3 Propyne
[1,1,1] CH3-CH2-CH2-CH3 Butane
...
これらはそうではありませんが、少なくとも1つの炭素原子には4つ以上の結合があるためです。
[2,3]
[3,2]
[3,3]
...
あなたの仕事は、正の整数が与えられると、正確に炭素原子の長さの有効な直鎖アルケンの数をn
出力/返すプログラム/関数を作成することです。これはOEIS A077998です。n
仕様/明確化
- を
1
返すことで正しく処理する必要があり1
ます。 - Alk * nesは「のような」で
[1,2]
あり[2,1]
、別個と見なされます。 - 出力は、指定された長さのすべての可能なalk * nesのリストの長さです。
- 0を正しく処理する必要はありません。
テストケース:
1 => 1
2 => 3
3 => 6
4 => 14
これはコードゴルフであるため、バイト数が最も少なくなります。
<=4
。