私の問題は、上記の数字の中で5桁の数字の中で最大の製品を見つけるために長い数字でサイクリングしています。私は解決策を持っていますが、現時点では、要素の位置のハードコーディングが含まれています。気分が悪くて、スケーラブルではありません。このソリューションを "Python"してそれを入れ子にしたり、何らかの方法で最適化する方法はありますか?要素の位置をハードコーディングせずにループを入れ子にする方法
n = 82166370484403199890008895243450658541227588666881
N = str(n)
Pro = 0
for i in range(0, len(N) - 4):
TemPro= int(N[i])*int(N[i+1])*int(N[i+2])*int(N[i+3])*int(N[i+4])
if TemPro> Pro :
Pro = TemPro
print(Pro)
OS:Windows 7の
言語:Pythonの3
'TemPro = int(N [i])... 'の部分はループで実行できるようです。いつものように、繰り返しを見るたびに、ループや関数に到達することを検討してください。あなたが数の範囲を超えてforループを持っていて、ループの中で掛け合われていれば、私はそれが働いているのを見ることができました。 – Carcigenicate
それは私の正確な考えでしたが、私はそれが1)境界外または2)二重の計数をし、それゆえに間違った答えを返さなければ、それを働かせるようには見えません。したがって、誰かがこれに精通しているかどうかを尋ねて、成功した実装の正しい方向に私を促すことができます。 –
数字を計算すると、約1ミリ秒節約できました。素晴らしい呼び声、ありがとう! –