이러한 문제를 해결하려면 재귀를 사용해야합니다.
반복적으로 해결할 수 있으며 이미 이해하고있는 도구를 사용하고 싶을 것입니다. 그러나 그것은이 연습의 목적을 물리 쳤으며, 이는 재귀를 사용하여 더 편안해집니다.
이러한 각 연습에 대해 코드를 사용하지 않고 다음을 식별해야합니다.
문제를 이해하고 샘플 입력 및 출력을 제시하여 각 문제를 시작하십시오. 일부 드릴에서는 편의를 위해 샘플 입력 및 출력을 제공했습니다.
울타리 위로 얼마나 많은 양이 점프하는지 계산하는 재귀 기능을 작성하십시오. 귀하의 프로그램은 입력으로 숫자를 가져와야합니다. 그 숫자는 당신이 가진 양의 수입니다. 이 기능은 더 이상 양이 남지 않을 때까지 "또 다른 양이 울타리 위로 점프합니다"라는 메시지와 함께 숫자를 표시해야합니다.
PowerCalculator ()라는 함수를 작성하여 두 개의 매개 변수, 정수를 기본으로, 다른 정수를 지수로 사용합니다. 함수는 제기 된 기본의 값을 지수의 전력으로 반환합니다. 0보다 큰 지수 만 사용하십시오 (양수)
-powercalculator (10,2)는 100 -powercalculator (10, -2)를 반환해야합니다.
문자열을 뒤집는 함수를 작성하십시오. 문자열을 입력으로 가져 가서 문자열을 뒤집고 새 문자열을 반환하십시오.
nth 삼각형 번호를 계산하십시오. 삼각형 숫자는 등쪽 삼각형을 형성 할 수있는 물체를 계산합니다. N 번째 삼각형 수는 측면에 n 도트가있는 삼각형을 구성하는 도트의 수이며, n 자연 수의 합은 1에서 n까지입니다. 이것은 삼각형 번호 시퀀스입니다 : 1, 3, 6, 10, 15, 21, 28, 36, 45.
분리기를 기반으로 문자열을 분할하는 재귀 함수를 작성하십시오 (String.prototype.split과 유사). 이 문제를 해결하기 위해 JS 배열의 분할 기능을 사용하지 마십시오.
주어진 숫자의 Fibonacci 시퀀스를 인쇄하는 재귀 함수를 작성하십시오. Fibonacci 시퀀스는 각 숫자가 앞의 2 개의 숫자의 합인 일련의 숫자입니다. 예를 들어, Fibonacci 시퀀스의 7 번째 Fibonacci 번호는 13입니다. 시퀀스는 다음과 같이 보입니다 : 1, 1, 2, 3, 5, 8, 13.
주어진 숫자의 요인을 찾는 재귀 함수를 작성하십시오. 숫자의 요인은 그 숫자에 그 숫자를 그 자체와 1 사이에 곱하여 찾을 수 있습니다. 예를 들어 5의 요인은 5 * 4 * 3 * 2 * 1 = 120입니다.
당신은 미로에 들어갔고 당신의 길을 찾아야합니다. 미로를 통해 단일 출구 지점으로 둘 이상의 가능한 경로가 있습니다. 미로를 통한 가능한 경로를 찾는 데 도움이되는 재귀 기능을 작성하십시오.
미로는 n*m 행렬로 표시됩니다. 시작점은 왼쪽 상단 코너이고 출구는 e로 표시됩니다. 단순화 목적을 위해 미로의 오른쪽 하단을 출구로 사용하십시오. 미로의 경계 밖으로 나갈 수 없습니다. 미로에는 막힌 구절이 있으며 당신은 그들을 통과 할 수 없습니다. 이 차단 된 구절은 *로 표시됩니다. 차단 된 셀을 통과 할뿐만 아니라 이미 전달한 셀을 통과하는 것은 금지되어 있습니다.
드릴의 큰 미로의 경우 가능한 종료 경로는 rrddllddrrrrrr 일 수 있습니다.
위의 큰 미로를 사용하고 솔루션을 수정하여 미로를 통해 가능한 모든 출구 경로를 찾으십시오. 미로를 통해 가능한 모든 출구 경로를 찾으려면 매 턴마다 얼마나 많은 장소를 움직일 수 있는지 생각해보십시오. 위, 아래, 왼쪽 또는 오른쪽?
이 미로에는 3 개의 출구 경로가 있습니다. 재귀 함수는 세 가지 경로를 모두 적절한 방향으로 인쇄해야합니다. 예를 들어, 위의 미로가 주어지면 프로그램은 다음을 출력해야합니다.
아나그램은 주어진 ( "주제") 단어 또는 구의 문자를 다른 재배치 순서로 사용하는 단어 나 구입니다. 주어진 단어의 모든 재 배열을 나열하는 Anagram 목록을 작성하는 함수를 작성하십시오. 예를 들어, 사용자가 "East"를 입력하는 경우 프로그램은 "Eats", "ETAS", "TEAS"및 "TSAE"와 같은 비 단어를 포함하여 24 개의 순열을 모두 나열해야합니다.
힌트 : 알고리즘의 경우 접두사에 대해 생각하고 새로운 단어를 만들기 위해 사용하고 싶을 수도 있습니다. 예를 들어 "East"가 주어지면 "E"를 접두사로 사용하여 "AST" - "AST", "ATS", "SAT", "Sta", "TAS"및 "TSA"의 6 가지 순열 앞에 놓습니다. 이것은 "East", "Eats", "Esat", "Esta", "Etas"및 "Etsa"라는 단어를 줄 것입니다. "East"의 모든 아나그램을 찾을 때까지 계속하십시오. 그런 다음 "a"를 접두사로 사용하고 나머지 단어 "est"를 분출시킬 수 있습니다. "East"의 경우 24 단어가 있어야합니다.
드릴에서 조직 차트 객체를 인쇄하는 재귀 함수를 작성하십시오. 출력은 계층 구조를 보여주기 위해 적절한 압입으로 드릴에 표시되어야합니다.
주어진 숫자의 이진 표현을 인쇄하는 재귀 함수를 작성하십시오. 예를 들어, 프로그램은 입력으로 3을 가져 가고 출력으로 11을 인쇄하거나 입력으로 25를 인쇄하고 출력으로 11001을 인쇄해야합니다. 0의 이진 표현은 0이어야합니다.