Прямоланцюговий алк * ne визначається як послідовність атомів вуглецю, з'єднана одинарними (алканами), подвійними (алкеном) або потрійними зв’язками (алкіном) (використовуються неявні водневі речовини). Атоми вуглецю можуть утворювати лише 4 зв’язки, тому жоден атом вуглецю не може бути змушений мати більше чотирьох зв'язків. Прямоланцюговий алк * не може бути представлений у вигляді переліку його вуглець-вуглецевих зв'язків.
Ось декілька прикладів дійсних прямих ланцюгів alk * nes:
[] 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
...
Хоча це не так, оскільки принаймні один атом вуглецю мав би більше 4 зв'язків:
[2,3]
[3,2]
[3,3]
...
Ваше завдання - створити програму / функцію, яка, даючи ціле натуральне число n
, виводить / повертає кількість дійсних алкіл прямих ланцюгів n
довжиною рівно атомів вуглецю. Це OEIS A077998 .
Технічні умови / Пояснення
- Ви повинні
1
правильно поводитися , повертаючись1
. - Алк * не подобається
[1,2]
і[2,1]
вважається виразним. - Вихід - це довжина списку всіх можливих алк * нев заданої довжини.
- Вам не доведеться правильно обробляти 0.
Випробування:
1 => 1
2 => 3
3 => 6
4 => 14
Це кодовий гольф, тому виграє найменший байт !
<=4
, правда?