Un alk * ne à chaîne droite est défini comme une séquence d'atomes de carbone reliés par des liaisons simples (alcane), doubles (alcène) ou triples (alcyne) (des hydrogènes implicites sont utilisés.) Les atomes de carbone ne peuvent former que 4 liaisons, donc aucun atome de carbone ne peut être contraint d'avoir plus de quatre liaisons. Un alk * ne à chaîne droite peut être représenté comme une liste de ses liaisons carbone-carbone.
Voici quelques exemples d'alc * nes à chaîne droite valides:
[] 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
...
Bien que ce ne soit pas le cas, car au moins un atome de carbone aurait plus de 4 liaisons:
[2,3]
[3,2]
[3,3]
...
Votre tâche consiste à créer un programme / une fonction qui, étant donné un entier positif n
, génère / renvoie le nombre d'alc * nes à chaîne droite valides d'une n
longueur exacte d' atomes de carbone. Il s'agit d' OEIS A077998 .
Spécifications / clarifications
- Vous devez gérer
1
correctement en revenant1
. - Alk * nes aiment
[1,2]
et[2,1]
sont considérés comme distincts. - La sortie est la longueur d'une liste de tous les alc * nes possibles d'une longueur donnée.
- Vous n'avez pas à gérer correctement 0.
Cas de test:
1 => 1
2 => 3
3 => 6
4 => 14
C'est le golf de code, donc le nombre d' octets le plus bas gagne!
<=4
, non?