あなたの仕事は、要素の同位体を含む文字列を入力として受け取り、次の例のようにエンコードされ、原子番号の後にスペースと要素のIUPAC化学記号が続くことです。
162 Dy
そして、その同位体の原子に含まれる中性子の数を返します。
上記の例では、ジスプロシウム162には96個の中性子(合計162核子、ジスプロシウムであるため66陽子を引いたもの)があるため、出力はになります96
。
与えられた要素は、IUPAC(フレロビウムとUus
肝組織を含む)によって現在恒久的な名前が与えられている114の要素の1つであり、「ununseptium」のような一般的な名前ではないと想定するかもしれません。同位体の原子番号が1000を超えないか、元素の陽子の数よりも少ないと仮定することもできます。
要素の陽子または中性子数に関するデータを取得するために組み込みを使用したり、文字列または数値トークンをそれ自体のコードとして評価するコード内の関数を使用したりすることはできません。
どんな言語でもこれを行うために最も少ないトークンを使用するプログラムが勝利します。ただし、この課題では、文字列内のすべての文字、または文字列に変換された変数名がトークンとしてカウントされます。
参照用の要素とその原子番号のリスト:
65
単一のトークンですか、それとも2つのトークンですか?
f[i_] := {n = ElementData[#[[2]], ToString@"StandardName"] <> ToString[#[[1]]], IsotopeData[n, "NeutronNumber"]} &[i]