我的账户
猩码学苑

专注C++开发菁英教育

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

前端-王卓凡-20230602

[复制链接]
王卓凡 发表于 2023-6-13 18:16:16 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
递归
一个函数在内部调用本身,就是递归函数。(函数内部自己调用自己)
递归函数的作用和循环一样。
递归函数需要退出条件。

var num = 1
function fn() {
    console.log('这是一个递归函数')
    if (num == 10) {
        return
    }
    num++
    fn()
}
fn()案例应用
  • 求1+2+3+4+......+10的和

function fun(n) {
    if (n == 1) {
        return 1
    }
    return n + fun(n - 1)
}
console.log(fun(3))
console.log(fun(4))
  • 求1×2× 3×4.....9×10的结果

var total = 1
for (var i = 1; i <= 3; i++) {
    total *= i
}
console.log(total)




function fn(num) {
    if (num == 1) {
        return 1
    }
    return num * fn(num - 1)
}
console.log(fn(2))
console.log(fn(3))
  • 求斐波那契数列

// 1 1 2 3 5 8 13 21 34 55
function fn(n) {
    if (n == 1 || n == 2) {
        return 1
    }
    return fn(n - 1) + fn(n - 2)

}
console.log(fn(1))
console.log(fn(5))
console.log(fn(10))
  • 求一个数组前n项的和

var arr = [1, 3, 5, 7, 9]
function getAdd(arr, n) {
  if (n == 1) {
    return arr[0]
  }

  return arr[n - 1] + getAdd(arr, n - 1)
}
console.log(getAdd(arr, 3))
  • 小明入职第一年的月薪是10k,涨幅是每年8%,那么20年后它的月薪是多少?

function moner(year) {
  if (year == 1) {
    return 10
  }
  return (1 + 0.08) * moner(year - 1)
}
console.log(moner(3))
  • 一元钱可以买一瓶水,两个空瓶可以换一瓶水,三个瓶盖可以换一瓶水,10块钱可以换多少瓶水?

// 1元   1瓶      
// 2元   5瓶         
// 3元   11瓶     
// 4元   17瓶     
// 5元   23瓶

function water(n) {
  if (n == 1) {
    return 1
  } else if (n == 2) {
    return 5
  } else {
    return water(n - 1) + 6
  }
}
console.log(water(3))
console.log(water(4))

回复

使用道具 举报

关注0

粉丝0

帖子47

发布主题
大家都在学
课堂讨论
一周热帖排行最近7x24小时热帖
关注我们
专注C++菁英教育

客服电话:18009298968

客服时间:9:00-21:00

猩码学苑 - 专注C++开发菁英教育!( 陕ICP备2025058934号-1 )

版权所有 © 陕西菁英数字科技有限公司 2023-2026