Un alchene * a catena lineare è definito come una sequenza di atomi di carbonio collegati da legami singoli (alcano), doppi (alcheni) o tripli (alchene), (vengono usati idrogeni impliciti). Gli atomi di carbonio possono formare solo 4 legami, quindi nessun atomo di carbonio può essere costretto ad avere più di quattro legami. Un alch * ne a catena lineare può essere rappresentato come un elenco dei suoi legami carbonio-carbonio.
Questi sono alcuni esempi di alch * nes validi a catena dritta:
[] 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
...
Mentre questi non lo sono, poiché almeno un atomo di carbonio avrebbe più di 4 legami:
[2,3]
[3,2]
[3,3]
...
Il tuo compito è quello di creare un programma / funzione che, dato un numero intero positivo n
, produca / restituisca il numero di alcheni * a catena lineare validi di esattamente n
atomi di carbonio di lunghezza. Questo è OEIS A077998 .
Specifiche / Chiarimenti
- È necessario gestire
1
correttamente restituendo1
. - Alk * nes piace
[1,2]
e[2,1]
sono considerati distinti. - L'output è la lunghezza di un elenco di tutti i possibili alk * nes di una data lunghezza.
- Non è necessario gestire 0 correttamente.
Casi test:
1 => 1
2 => 3
3 => 6
4 => 14
Questo è il golf del codice, quindi vince il conteggio di byte più basso !
<=4
, giusto?