IUPAC用他们无法忍受的智慧为任何新创建的元素创建了一个系统的元素名称。这是元素的临时名称,直到他们最终决定使用实际名称。它的工作方式如下:元素编号的每个数字都根据其值分配一个前缀。前缀末尾带有“ ium”。完成此操作后,如果您得到双倍i(ii)或三倍n(nnn),则将它们替换为单个i和双倍n。元素的符号是串联使用的每个前缀的首字母,并将结果大写。使用的前缀如下。
0 nil 5 pent
1 un 6 hex
2 bi 7 sept
3 tri 8 oct
4 quad 9 enn
因此,对于这种高尔夫运动,您的代码需要为给定的正整数生成元素名称及其符号。因此,如果给定的代码为137,则应将其打印到stdout或同时返回untriseptium
和Uts
。它的有效期至少应为118到558。如果不增加代码长度,则更高的值是有效的。
显示该方法的Python示例:
def elename(n):
'''Return name and symbol of new element for given element number.'''
prefixes=['nil','un','bi','tri','quad','pent','hex','sept','oct','enn']
nmeFixes, symFixes = [], []
while n: # each digit of element number is assigned a prefix
n, i = divmod(n, 10)
pf = prefixes[i]
symFixes.append(pf[0]) # symbol uses only first letter of prefix
nmeFixes.append(pf)
# loop assembled prefixes in reverse order
nmeFixes.reverse()
symFixes.reverse()
nmeFixes.append('ium') # suffix
name = ''.join(nmeFixes)
symb = ''.join(symFixes).capitalize()
# apply rule about too many n's or i's
name = name.replace('nnn','nn') # can happen with -90-
name = name.replace('ii','i') # -2ium or -3ium
return name, symb
埃里克塔赢得镉字节!