我想在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