您的任务是将包含元素同位素的字符串作为输入,如下面的示例所示,其编码为原子序号,后跟一个空格和该元素的IUPAC化学符号:
162 Dy
并返回该同位素原子中的中子数。
在以上示例中,162具有96个中子(162个总核子,由于是66而减去66个质子),因此输出应为96
。
您可能会假定给定的元素将是IUPAC当前给定的114个永久性元素之一(包括fl药和肝mor),而不是通用名称,例如Uus
“ un”。您还可以假定同位素的原子数不超过1000,或小于元素中的质子数。
您可能无法使用内置函数来检索有关质子或中子元素数量的数据,也不能使用代码中的任何函数将字符串或数字标记本身视为代码。
该程序使用最少的令牌以任何语言执行此操作均会获胜。但是,出于此挑战的目的,字符串中的每个字符或转换为字符串的变量名称都视为标记。
元素列表及其原子序号供参考:
啊哈哈,对,只需阅读标签Wiki。好像我误解了标签包含的内容。
—
Sp3000
通常,就语言之间的公平性而言,原子代码高尔夫优于代码高尔夫,因为它不喜欢高尔夫专用语言(例如CJam或Golfscript)。
—
Joe Z.
数字是否被视为单个令牌?就像我的答案一样,是
—
Optimizer
65
一个令牌还是2个令牌?
“总的来说,就语言之间的公平性而言,原子代码高尔夫优于代码高尔夫,因为它不喜欢高尔夫专用语言(例如CJam或Golfscript)。” 还是呢?;)
—
Martin Ender 2014年
如果允许内置,则可以使用用Mathematica编写的以下函数:
—
DavidC 2014年
f[i_] := {n = ElementData[#[[2]], ToString@"StandardName"] <> ToString[#[[1]]], IsotopeData[n, "NeutronNumber"]} &[i]