姓名得分
作者:L. Grondin
https://projecteuler.net/problem=22
使用 names.txt(一个包含五千多个名字的 46K 文本文件),首先按字母顺序对其进行排序。然后算出每个名字的字母值,将该值与其在列表中的字母顺序位置相乘,即可得到一个名字得分。
例如,当列表按字母顺序排序时,COLIN 的值为 3 + 15 + 12 + 9 + 14 = 53,它是列表中的第 938 个名字。所以,COLIN 的得分是 938 × 53 = 49714。
文件中所有名字得分的总和是多少?
use v6; my $i = 1; constant A = 'A'.ord - 1; my $names-file = $*SPEC.catdir($*PROGRAM-NAME.IO.dirname, "names.txt"); my $data = slurp $names-file; my @names = sort $data.subst('"', '', :g).split(','); say [+] gather for @names { take $i++ * [+] .comb».ord »-» A; }