Una cadena * alcalina de cadena lineal se define como una secuencia de átomos de carbono conectados por enlaces simples (alcano), dobles (alqueno) o triples (alquino) (se usan hidrógenos implícitos). Los átomos de carbono solo pueden formar 4 enlaces, por lo que Ningún átomo de carbono puede verse obligado a tener más de cuatro enlaces. Una cadena lineal * * neta puede representarse como una lista de sus enlaces carbono-carbono.
Estos son algunos ejemplos de alc * nes válidos de cadena lineal:
[] 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
...
Si bien estos no lo son, ya que al menos un átomo de carbono tendría más de 4 enlaces:
[2,3]
[3,2]
[3,3]
...
Su tarea es crear un programa / función que, dado un número entero positivo n
, produzca / devuelva el número de alcanos * de cadena lineal válidos de n
longitud exacta de átomos de carbono. Este es OEIS A077998 .
Especificaciones / Aclaraciones
- Debe manejar
1
correctamente volviendo1
. - Alk * nes gusta
[1,2]
y[2,1]
se consideran distintos. - La salida es la longitud de una lista de todos los posibles * alnos de una longitud dada.
- Usted no tiene que manejar 0 correctamente.
Casos de prueba:
1 => 1
2 => 3
3 => 6
4 => 14
Este es el código de golf, por lo que gana el conteo de bytes más bajo .
<=4
, ¿verdad?