Göreviniz, bir elemanın izotopunu giriş olarak içeren, aşağıdaki örnekte olduğu gibi atom numarası ve ardından bir boşluk ve elemanın IUPAC kimyasal sembolü ile kodlanan bir dize almaktır:
162 Dy
ve o izotopun bir atomundaki nötron sayısını döndürür .
Yukarıdaki örnekte, disprosyum-162 96 nötrona sahiptir (162 toplam nükleon, eksi 66 proton çünkü disprosyum), bu nedenle çıktı olmalıdır 96
.
Verilen öğenin Uus
, "ununseptium" gibi genel bir ad değil, IUPAC tarafından (flerovium ve livermorium dahil) şu anda kalıcı adlar verilen 114 öğeden biri olacağını varsayabilirsiniz . İzotopun atom numarasının 1000'i aşmayacağını veya elementteki proton sayısından daha az olmayacağını varsayabilirsiniz.
Proton veya nötron eleman sayısı hakkında veri almak için yerleşik kodları kullanamaz veya kodunuzda kendi başına kod olarak bir dize veya sayı jetonunu değerlendiren herhangi bir işlev kullanamazsınız.
Herhangi bir dilde bunu yapmak için en az jeton kullanmak için program kazanır. Ancak, bu sınama amacıyla, bir dizedeki her karakter veya bir dizeye dönüştürülen değişken adı bir jeton olarak sayılır.
Referans için elementlerin listesi ve atom numaraları:
65
, tek bir jeton mu yoksa 2 jeton mu?
f[i_] := {n = ElementData[#[[2]], ToString@"StandardName"] <> ToString[#[[1]]], IsotopeData[n, "NeutronNumber"]} &[i]