Alk * rantai lurus didefinisikan sebagai urutan atom karbon yang dihubungkan oleh ikatan tunggal (alkana), rangkap dua (alkena), atau rangkap tiga (alkuna), (digunakan hidrogen implisit.) Atom karbon hanya dapat membentuk 4 ikatan, jadi tidak ada atom karbon yang dipaksa memiliki lebih dari empat ikatan. Alk * rantai lurus dapat direpresentasikan sebagai daftar ikatan karbon-karbonnya.
Ini adalah beberapa contoh alkali rantai lurus yang valid:
[] 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
...
Meskipun tidak, karena setidaknya satu atom karbon akan memiliki lebih dari 4 ikatan:
[2,3]
[3,2]
[3,3]
...
Tugas Anda adalah membuat program / fungsi yang, jika diberi bilangan bulat positif n
, mengeluarkan / mengembalikan jumlah rantai lurus yang valid n
dengan panjang persis atom karbon. Ini adalah OEIS A077998 .
Spesifikasi / Klarifikasi
- Anda harus menangani
1
dengan benar dengan kembali1
. - Orang-orang suka
[1,2]
dan[2,1]
dianggap berbeda. - Output adalah panjang daftar semua kemungkinan alk panjang.
- Anda tidak harus menangani 0 dengan benar.
Kasus uji:
1 => 1
2 => 3
3 => 6
4 => 14
Ini adalah kode golf, jadi jumlah byte terendah menang!
<=4
, kan?