JS의 재귀 함수

재귀 함수

  • 재귀란 무엇입니까?
    • 프로그래밍 세계에서 재귀는 자신을 호출하는 수단입니다.
    • 재귀 함수: 함수 내에서 자신을 호출하고 반복합니다.
// 下面这个代码就是一个最简单的递归函数
// 在函数内部调用了自己,函数一执行,就调用自己一次,在调用再执行,循环往复,没有止尽
function fn() {
  fn()
}
fn()
  • 사실 재귀 함수는 루프와 매우 유사합니다.

  • 초기화, 자체 증분, 코드 실행 및 조건부 판단이 필요하며, 그렇지 않으면 무한 재귀 함수이며 이를 데드 재귀 라고 합니다.

둘째, 재귀를 사용하여 일부 문제를 해결합니다.

2.1 재귀를 사용하여 100의 계승 찾기

  • 아이디어: 100의 팩토리얼을 찾는 것은 99 곱하기 100의 팩토리얼이며, 이는 n의 팩토리얼에 대한 n*(n-1)의 곱과 같습니다.
function a(n) {
    if (n == 1) {
        return 1
    }
    return a(n - 1) * n
}
console.log(a(100));

2.2 재귀 함수 dep()를 작성하여 요구 사항을 충족합니다. 연봉은 10,000이고 연간 인상률은 0.5%이므로 50년 후 급여는 얼마입니까?

  • 아이디어 : 10,000부터 시작하여 매년 증가하고 연간 작업은 작년의 1.005 배입니다.
function dep(y) {
    if (y == 1) {
        return 10000
    }
    return dep(y - 1) * 1.005
}
var a = dep(50)
console.log(a);

2.3 재귀를 사용하여 피보나치 수열 찾기

  • 피보나치 수열:1 1 2 3 5 8 13 21 34 ...
  • 함수를 작성하고 5를 전달하고 피보나치 수열의 다섯 번째 숫자를 출력하십시오.
  • 아이디어: 우선 첫 번째 항목과 두 번째 항목이 모두 하나임을 알 수 있습니다. 재귀할 때 n이 1 또는 2일 때 1을 반환하여 재귀를 종료합니다. 그러면 다음을 더하는 것을 볼 수 있습니다. 처음 두 숫자는 세 번째 숫자와 같으므로 n번째 숫자는 n-1번째 숫자와 n-2번째 숫자를 더한 다음 재귀를 사용합니다.
function fun(n) {
    if (n == 1 || n == 2) {
        return 1
    }
    return fun(n - 1) + fun(n - 2)
}
var res = fun(5)
console.log(res);

추천

출처blog.csdn.net/liu0218/article/details/126549252