좋아,이게 숙제라는 말로 시작하자. 그러나 나는 대답을 가지고있다. (그것이 효과가있을 때까지 놀았다.) 내 질문은 교사가 여러 번 (온라인 수업) 그것을 어떻게 설명했는지에 관한 것이지만, 여기에있는 누군가가 더 나은 것을 희망하면서, 나는 그것을 얻지 못하고있다. 나는 그들에 대해 생각하는대로 일들을 설명한다. ** recurPower ** 알아 들었지만 이해할 수 없다.
재귀 같은 문제의 더 작은 버전을 해결하기 위해 자신을 호출 한 후 초기 문제를 해결하기base
으로 결과를 곱하여
base**exp
을 계산하는 함수
recurPower(base, exp)
쓰기 : 여기
가 할당된다.
이 함수는 두 값을 취해야합니다. base
은 부동 소수점 또는 정수일 수 있습니다. exp
은 정수 ≥이됩니다. 하나의 숫자 값을 반환해야합니다. 코드는 재귀 적이어야합니다. **
연산자 또는 루핑 구문을 사용할 수 없습니다.
시행 착오를 몇 번 시도한 결과 (올바른 방법으로 몇 시간의 변화를 의미 함) 올바른 코드를 찾았지만 올바른 답을 찾지 못했지만 방법을 이해하지 못했습니다. 마지막 부분 경우이다 아무것도 1. 두 번째로 돌아올 것이라고 이유를 이해 해달라고 ....
def recurPower(base, exp):
'''
base: int or float.
exp: int >= 0
returns: int or float, base^exp
'''
if exp <= 0:
return 1
return base * recurPower(base, exp - 1)
우선 = 0 다음 반환 특급이 1 인 부분은 다음과 같습니다
코드입니다 코드가없는 경우 루프가 없으면 exp가 1 씩 감소합니다. 정의에exp <= 0
1을 반환
않는 이유
'recurPower (base, exp - 1) '이 무엇을 의미하는지 알고 있습니까? – SLaks
음, 저 기초 * recurPower (기본, 특급 - 1) 기지를 가지고 기지로 그것을 곱하면 1로 exp를 줄이기 위해,하지만 내가 다시 EXP를 줄이기 위해 다시 반복하는 방법을 이해하지 못했지만, 좀 아래에있는 답변을 보시오. – Aoxx
edx.org의 "6.00.1x 컴퓨터 과학 및 프로그래밍 개론"입니다. – furas