Python で次のコードを検討してください。
def main():
n = input( )
s = input( )
coins = [ 0 ]*n
dp = [ 0 ]*( s+1 )
print coins
print dp
for i in range( n ) :
coins[ i ] = input( )
dp[ 0 ]=0
dp[ 1 ]=1
for i in range( 2, s+1 ) :
min_val = 999999
for j in range( 0, n ) :
if i-coins[ j ] > 0 :
if dp[ i-coins[ j ] ] + 1 < min_val :
min_val = dp[ i-coins[ j ] ] + 1
print coins
print dp
print coins[ s ]
if __name__ == "__main__" :
main()
このプログラムをコンパイルして実行すると、次のランタイム エラーが発生します。
File "test.py", line 33, in <module>
main();
File "test.py", line 30 in main
if dp[ i-coins[ j ] ] + 1 < min_val :
IndexError: list index out of range
どうしたの?
入力:
5 10
1 3 5 7 9