시도했지만 실패했습니다. 올바른 방향으로 밀어 넣을 수 있을까요?두 개의 숫자를 연속적인 뺄셈을 사용하여 구하는 재귀 함수
0
A
답변
8
먼저 대개 이것은 재귀를 위해 대단히 나쁜 사용법임을 강조해야합니다. 최상의 재귀 적 솔루션은 이터 레이션마다 나머지 검색 공간의 절반을 제거하는 바이너리 검색과 같이 솔루션의 "검색 공간"을 다소 빨리 줄이는 경향이 있습니다.
감산이 피검자에 비해 상대적으로 작은 경우 (minuend - subtrahend
은 차이를 나타냄) 많은 재귀 호출이 발생하고 스택 공간을 상당히 소모 할 수 있습니다.
은 아마 숙제이기 때문에 아래의 솔루션은 단지 의사 코드에 그런 말로 미루어 보아 :
그것은 당신이 때까지 반복a
에서
b
을 뺀 및 수준을 아래로 이동하여 작동
def divu (a, b):
if a < b return 0
return divu (a - b, b) + 1
부정적인 영향을받지 않고 더 이상 b
을 a
에서 뺄 수 없습니다. 그런 다음 재귀 트리를 반환하고 내려간 각 레벨에 대해 1을 더합니다.
이는 단지 원판 대를 고정했지만, a
의 음이 아닌 값 b
의 양수 값 (부호위한 따라서 divu
이름) 작동 및 제로 나눗셈 것이다 단지 약간의 추가 작업이다. 취급 표지판 및 오류
몇 가지 힌트 : b는 오류, 예외, 또는 다른 메커니즘 제로 종료에 동일한 경우는
- 똑바로 감지합니다.
-a/-b
을a/b
으로 처리하십시오.-a/b
을-(a/b)
으로 처리하십시오.a/-b
을-(a/b)
으로 처리하십시오.- 그렇지 않으면
a/b
을 해결하십시오.
그것은 하나의 재귀 호출에서 그 특별한 경우를 처리하는 것이 가능하지만, 재귀의 각 수준에서 불필요한 검사를 추가합니다. 질문을 당신이 실패하는 방법
def div (a, b):
if b == 0
exit with error
if a < 0 and b < 0:
return divu (-a, -b)
if a < 0:
return -divu (-a, b)
if b < 0:
return -divu (a, -b)
return divu (a, b)
관련 문제
- 1. Tesseract는 두 개의 숫자를 혼동합니다.
- 2. 재귀 함수
- 3. 두 개의 숫자를 Map 키로 사용하는 방법
- 4. 자바 스크립트에서 두 개의 연속적인 대화 상자를 사용할 수 있습니까?
- 5. 두 개의 숫자를 더하는 정규 표현식 만들기
- 6. Objective-C에서 두 개의 숫자를 연결하는 방법
- 7. 두 개의 숫자를 더하는 튜링 기계
- 8. 설탕 crm에 두 개의 숫자를 추가하는 방법
- 9. 재귀, 입력을 사용하여 함수 호출하기
- 10. 두 개의 연속적인 KeyDown 이벤트 사이의 지연이 길다.
- 11. 두 개의 java.util.Date 사이의 연수를 구하는 방법은 무엇입니까?
- 12. 반복자에서 두 개의 연속적인 값을 얻을 수있는 방법
- 13. 두 개의 연속적인 UIPopoverController를 올바르게 표시하는 방법은 무엇입니까?
- 14. 두 개의 jquery 함수 결합하기
- 15. 표준 ML 재귀 함수
- 16. haskell 재귀 함수
- 17. 재귀 함수
- 18. PHP 숫자를 매기는 함수.
- 19. JavaScript에서 호출하는 재귀 함수
- 20. DI를 사용하여 2 개의 숫자를 사용하여 계산하기위한 새로운 방정식을 추가하십시오.
- 21. jQuery 재귀 함수
- 22. 재귀 함수 완료시기 결정
- 23. 두 개의 PHP 함수 결합/병합
- 24. Prolog : 재귀 함수 재정의
- 25. jQuery를 재귀 함수 오류
- 26. Google지도에서 두 개의 다각형 빼기
- 27. 128 비트 숫자를 올바르게 더하기/빼기하는 방법 (두 개의 u_int64_t로)
- 28. Java 재귀 및 정수 두 자릿수
- 29. 재귀 문자열 역방향 함수
- 30. 익명 함수/재귀 C#
당신이 우리에게 시도를 보여줄 수, 그리고 명확하게 : 그런 다음 재귀 비트를 할
divu
를 호출 할 수있는 검사 기능div
, 같은 것을 제공하기 위해 아마 더 효율적? – GManNickG이것이 "진짜 질문이 아닙니다"로 닫히는 이유는 무엇입니까? 내게 완벽하게 맞아 보인다. – paxdiablo