我的代码为Project euler编号22返回正确的awnser为例子,但为主要问题返回871323337这是错误的。代码通过示例,但没有给出正确的输出(项目欧勒编号22)
使用names.txt(右键单击并选择'Save Link/Target As ...'),一个包含五千多个名字的46K文本文件,首先按照字母顺序排序。然后计算每个名称的字母值,将此值乘以列表中的字母位置以获得名称分数。 例如,当列表按字母顺序排序时,值为3 + 15 + 12 + 9 + 14 = 53的COLIN是列表中的第938个名称。因此,COLIN将获得938×53 = 49714的分数。 文件中所有名称分数的总和是多少?
y=[]
for a in range(1,len(x)+1):
s="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"
for b in x:
if b<s:
s=b
y.append(s)
x.remove(s)
def letter_to_int(letter):
return int(ord(letter)-64)
def sum_in_string(s):
t=0
for i in s:
if i=='!':
break
t=t+letter_to_int(i)
return t+60
t=0
for i in range(0,len(y)):
t=t+sum_in_string(y[i])*(i+1)
print(t)
你想让我们告诉你什么? –
@BillBell你能告诉我我的代码有什么问题吗? –
我同意奈特在评论中对他的回答所说的话。一般来说,如果您希望其他人阅读您的代码,这是很好的建议。 –