2017-09-03 2 views
0

문제점을 해결하기 위해 노력하고 있습니다. 왜 재귀 함수 단계가 None을 반환하는지 이해할 수 없습니까? 테스트 케이스에 대한이 경우 print() 함수가 아무 것도 인쇄하지 않습니다.

import sys 

def minIndx(list): 
    x=10 
    indx=0 
    for i in range(len(list)): 
     if (list[i]<x): 
      x=list[i] 
      indx=i 
    return indx 

def steps(arr,sum1,sum2,x): 
    i = minIndx(arr) 
    del arr[i] 
    sum1 = sum(arr) 
    if (sum1 + 9*x >= sum2): 
     return x 
    else: steps(arr,sum1,sum2,x+1) 

s=input() 
digits1=[] 
digits2=[] 
for i in range(len(s)): 
    if (i>2):break 
    digits1.append(int(s[i])) 
for i in range(len(s)): 
    if (i<3):continue 
    digits2.append(int(s[i])) 
sumLeft = sum(digits1) 
sumRight = sum(digits2) 
print(steps(digits1,sumLeft,sumRight,1)) 

: 여기

는 코드 123456, 단계 기능 인쇄 없음뿐만 아니라 인쇄 기능

+1

'steps'의 else에는 아무 것도 반환하지 않습니다. 재귀를 사용할 때마다 모든 실행 분기가 반환되어야합니다. 재귀 호출의 결과 만 반환하면됩니다. – Carcigenicate

답변

1

당신이 당신의 재귀를 반환하지 않는 때문에이 될 수있다 요구. 여기서 예상되는 결과는 무엇입니까? 재귀 호출을 단계로 리턴하면 입력 값 123456에 대해 2의 값을 얻습니다.

관련 문제