プロジェクトオイラー番号22のコードは、この例の正しいawnserを返しますが、主な問題の場合は871323337を返します。コードは例を渡しますが、正しい出力は得られません(プロジェクトオイラー番号22)
names.txt(右クリックし、[名前を付けてリンクを保存])を使用すると、名前が五千を超える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私のコードに何が間違っているか教えてください。 –
私はネイトが彼の答えに対するコメントで言ったことに同意するでしょう。他の人があなたのコードを読んでくれれば、それは良いアドバイスです。 –