コードに誤りがあります。私には見つかりませんでした。あなたのコードでpython文法ミス無効構文
def cut_rod(p, n):
if (n == 0):
return 0
q = p[n];
for i in range(1,n):
q = max(q, p[i] + cut_rod(p, n - i));
return q;
return;
# your code goes here
p1 = [1, 5, 8, 9, 10, 17, 17, 20, 24, 30];
n1 = len(p1);
print n1;
a = cut_rod(p1,n1);
どのようにエラーがあると知っているのですか?エラーのトレースバックを投稿すると、人々があなたを助けるのに役立ちます! –
Pythonはゼロベースのインデックスを使用します。つまり、リストの最初の項目は1ではなく、インデックス0にあります。 'n1 = len(p1)'を使用すると、その項目の項目は実際にはリストの最後の直後です:存在しません。 'n1 = len(p1) - 1'を使うべきです。 – zondo
こんにちは、私はPythonの初心者です。エラーは、 "RuntimeError:最大再帰深度を超えました"と表示されます。返信いただきありがとうございます。 – yx131