我想在Python中做问题#22,我的答案是关闭的。我已经浏览了列表并尝试了某些名字,并且他们的计算是正确的(我认为)。欧拉项目#22 - 为什么我的总数减少了324536?
任何人都可以帮忙吗?
问题:
使用names.txt中(右键“目标另存/目标为...”),载有超过五千年的名字一个46K的文本文件 ,开始通过排序它 按字母顺序排列。然后计算每个名称的 的字母值,将该值乘以其在 列表中的字母位置以获得名称分数。
例如,当列表按字母顺序排序时,值为3 + 15 + 12 + 9 + 14 = 53的COLIN 是 列表中的第938个名称。因此,COLIN将获得938×53 = 49714的分数。
文件中所有名称得分的总和是多少?
def letter_sum(word):
total = 0
for letter in word:
total += ord(letter) - ord('A') + 1
return total
def namescore(name, count):
name_sum = letter_sum(name)
return count * name_sum
def main():
names = []
f = open('p022_names.txt', 'r')
string = f.read()
f.close()
total = 0
names = sorted(string.replace('"', '').split(','))
for i in range(len(names)):
total += namescore(names[i], i)
print total
头脑简单地告诉我们什么#22是关于没有我们每个人不必去看看它单独? – deceze
编辑 - 谢谢! – jordanc
当你调用'namescore',从0开始时,你乘以'i'。我认为这是问题所在。 – Rishav