day5 递归和dom简单操作

一、递归

 递归就是自己调用自己   函数内部调用函数

    三大问题因素
        1.明确对应要解决的问题
        2.明确临界点 (终止)  if   else
        3.明确内部需要调用自己的函数

     递归调用的方式
        1.首先去找临界点  即无需计算//一般是有结果返回
         函数必须有参  其次参数之间得到的结果会存在某种关系
        如果当前函数已经使用,那么对应的上一次函数我们会把他当值来进行计算
 
        13579....问第20位是什么
        function fn(num){//这个里面的num表示的是当前传递的参数  为第几位
            if(num==1){//临界点  已知条件  没有规律的
                return 1
            }else{//存在规律的
                return fn(num-1)+2//找到前者和后者的关系  自己调用自己
            }

        }
        console.log(fn(20));

       1 3 6 10 15 21  问第10位的结果
        function fn1(num1){
            if(num1==1){
                return 1
            }else{
                return fn1(num1-1)+num1//将fn1(num1-1)当作值来看
            }
        }
        //调用
        console.log(fn1(10));
 
  练习
       1 1 2 3 5 8 13  问第10位是什么值
        function fn2(number){
            if(number==1){
                return 1
            }else if(number==2){
                return 1
            }else{
                return fn2(number-1)+fn2(number-2)
            }
        }
        console.log((fn2(10)));

        1 4 9  16 问第10位结果为几
        function fn3(number1){
            if(number1==1){
                return 1
            }else{
                return fn3(number1-1)+2*number1-1
            }
        }
        console.log(fn3(10));

       不用循环  计算0-100以内的数字和
        var res=0
        function fn4(numbe){
            if(numbe==1){
                return 0
            }else{
                res += fn4(numbe-1)+1
                return fn4(numbe-1)+1
            }
        }
        fn4(4)
        console.log(res);
        第二种方式  死循环嵌套 再return
        var count=0 ,sum=0
        function fn5(num){
            if(count<num){
                count++
                sum+=count
            }else{
                console.log(sum);
                return sum
            }
            fn5(num)
        }
        fn5(5)

        8, 兔子繁殖问题,设有一只新生兔子,从第四个月开始他们每个月, 月初都生一只兔子, 新生的兔子从第四个月月初开始又每个月生一只兔子按此规律,并假定兔子没有死亡, n(n<=20)个月月末共有多少只兔子?
        function fn6(numb){
            if(numb==1 || numb==2 || numb==3){
                return 1
            }else{
                return fn6(numb-1)+fn6(numb-3)
            }
        }
        console.log(fn6(10));

        // 从第三个月新生一只兔子
        function fn7(numbe){
            if(numbe==1 || numbe==2){
                return 1
            }else{
                return fn7(numbe-1)+fn7(numbe-2)
            }
        }
        console.log(fn7(10));
 
二、DOM的简单操作
 
 <input type="text" id="input">
    <!-- onclick 是所有标签都有的  这个是对应的触发点击事件 里面的值为函数,也就意味着点击这个按钮 调用对应的函数  这个函数调用的方式叫做函数的事件调用 -->
    <button onclick="showInp()">点击显示内容</button>
    <script>
        function showInp(){
            //先要获取这个input
            //document  文档  get 获取  element 元素  by  通过  id
            var oInp=document.getElementById("inp")
            //打印里面的value值 input里面显示的内容为value值
            var val1=oInp.value
            console.log(val1);
        }
        // showInp()  也是事件驱动  加载事件   所有函数都需要事件驱动

        // 通过文档写入  通过输出流直接发送给浏览器  由浏览器自动渲染
        // 服务器渲染  加载快  (首页渲染)
        // document.write()  建议少用
posted @ 2022-03-21 17:18  凌晨四点钟  阅读(53)  评论(0)    收藏  举报