JS(第九课)深刻的去理解函数.(三)

简介: JS(第九课)深刻的去理解函数.(三)

下面进入案例

案例一   实现斐波那契数列,输入第几项,返回这个值并输出 函数1,1,2,3,5,8,13,21,34,55

 <script>
     function all(n){
         if(n<=2){return n }
         return  all(n-1)+all(n-2);
     }
     // all(12);
     console.log(all(7));
 </script>

案例二 小白上楼梯

 <!-- 小白上楼梯 -->
 <!-- if(n==0)return 1;
  if(n==1)return 1;
  if(n==2)return 2;
  return f(n-1)+f(n-2)+f(n-3); -->
 <script>
     function f(n) {
         // 如果用户的楼梯 只有 0 1  梯   用户只需要用一种方案搞定
         //  如果用户的楼梯 n 梯   用户只只能跨过 一级 二级 三级 
         // 如果用户能跨过的是四呢
         if (n == 0) return 1;
         if (n == 1) return 1;
         if (n == 2) return 2;
         return f(n - 1) + f(n - 2) + f(n - 3);
     }
     f(8)
     var rs=f(8);
     console.log("用户跨越楼梯的方案有"+rs+"种");
 </script>

案例三  Math.random()*9编写生成4位数字验证码的函数,并生成10次,同时将结果打印出来 使用函数

<script>
    function all(i) {
        var s = Math.floor(Math.random() * 10000);
        console.log("第" + i + "次" + s)
    }
    function get() {
        for (var i = 1; i <= 10; i++) {
            all(i)
        }
    }
    get()
</script>

案例四 编写一个函数,计算三个数字的大小,按从小到大顺序输出

<script>
    var a=prompt("请输入第一个数");
    var b=prompt("请输入第二个数");
    var c=prompt("请输入第三个数");
    if (a > b) {
        if (a > c) {
            document.write(a + ",")
        } else {
            document.write(c + ",")
        }
    } else {
        if (b > c) {
            document.write(b + ",")
        } else {
            document.write(c + ",")
        }
    }
    if (a > b) {
        if (c > a) {
            document.write(a + ",")
        } else {
            if (b > c) {
                document.write(b + ",")
            } else {
                document.write(c + ",")
            }
        }
    } else {
        if (c > b) {
            document.write(b + ",")
        } else {
            if (a > c) {
                document.write(a + ",")
            } else {
                document.write(c + ",")
            }
        }
    }
    if (a > b) {
        if (b > c) {
            document.write(c + "," +"这是三个数字的排序")
        } else {
            document.write(b + "," +"这是三个数字的排序")
        }
    } else {
        if (c > a) {
            document.write(a + "," +"这是三个数字的排序")
        } else
            document.write(c + "," +"这是三个数字的排序")
    }
</script>

案例五 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,

加密规则如下:每位数字都加上5,然后用除以10的余数代替该数字,再将第一位和第四位交换

第二位和第三位交换,请编写一个函数,传入原文,输出密文,使用函数

   <script>
       //  var s = Math.floor(Math.random() * 10000);
       // 定义第一个变量
       // 定义第二个变量
       var r;
       var a = 123;
       var b = 234;
       r = a;
       a = b;
       b = r;
       console.log(a)
       console.log(b)
       var aa = 4;
       var bb = 5;
       console.log(aa / 2);  //除数
       console.log(bb % 2);  //余数
       // 案例 
       function RetGyuhtrDertp() {
           // 生成随机的一个变量
           var num = Math.floor(Math.random() * 10000);
           // 
           console.log("随机数为" + num);
           // 个
           var fist = ((num + 5)%10);
           console.log("第一位数" + fist);
           var two = parseInt((num + 5) / 10)%10;
           console.log ("第二位数" + two);
           var three = parseInt((num + 5 )/ 100)%100;
           console.log ("第三位数" + three);
           var four = parseInt((num + 5) /1000)%1000;
           console.log ("第四位数" + four);
           // 一 四  交互
           var  aa;
           aa=fist;
           fist=four;
           four=aa;
           // 二三 交互
           var bb;
           bb=two;
           two=three;
           three=two;
           console.log(fist+"&nbsp;"+two+"&nbsp;"+three+"&nbsp;"+four)
       }
       // 函数的调用
       RetGyuhtrDertp()
   </script>

案例六 五位数 能组成多少个互不相同且一个数字中无重复数字的三位

 <script>
     function all(){
         var  count=0;
  //0 1 2 3 4  五个数
  for (var i = 1; i < 5; i++) {
    // 0 1 2 3 4 
    for (var j = 1; j <5; j++) {
      //0 1 2 3 4 
      for (var k = 1; k <5; k++) {
        if(i==k &&i!=j && j!=k ) {
          count++;
          document.write("能组成三位重复的数字"+i*100+j*10+k+"<br>");
        }
    }
  }
}
}
 all()
 </script>

案例七  判断是不是二的整数方次 和  判断是否为素数

<!--判断是不是二的整数方次 -->
<script>
    function fg(n) {
        if ((n & (n - 1)) == 0) {
            console.log("是二的整数方");
        } else {
            console.log("该数不是二的整数方");
        }
    }
    fg(123)
    console.log(fg(123))
</script>
<!-- 判断是否为素数 -->
<script>
    function ko(n) {
        var m = 0;
        for (var i = 2; i < n; i++) {
            if (n % i == 0)
                m++;
        }
        if (m == 0) {
            document.write("为素数");
        } else {
            document.write("不是素数");
        }
        document.write("<br>");
    }
    ko(123)
    console.log(ko(123))
</script>

案例八 请用户输入年月日计算天数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title></title>
</head>
<body>
    <!-- 亲用户输入年月日 -->
    <script>
        function YearMonthNum() {
            // 声明三个变量
            var year = prompt("请用户输入年份")
            var month = prompt("请用户输入月份")
            var day = prompt("请用户输入天数")
            console.log("用户输入的年份" + year + "用户的" + month + "月份" + day + "号");
            //5.定义一个变量去统计一共过了多少天
            var sum = 0;
            switch (month) {
                case 12:
                    if (month == 12) {
                        sum = sum + day;
                    } else {//过满了整月
                        sum = sum + 31;
                    }
                case 11:
                    if (month == 11) {
                        sum = sum + day;
                    } else {//过满了整月
                        sum = sum + 30;
                    }
                case 10:
                    if (month == 10) {
                        sum = sum + day;
                    } else {//过满了整月
                        sum = sum + 31;
                    }
                case 9:
                    if (month == 9) {
                        sum = sum + day;
                    } else {//过满了整月
                        sum = sum + 30;
                    }
                case 8:
                    if (month == 8) {
                        sum = sum + day;
                    } else {//过满了整月
                        sum = sum + 31;
                    }
                case 7:
                    if (month == 7) {
                        sum = sum + day;
                    } else {//过满了整月
                        sum = sum + 31;
                    }
                case 6:
                    if (month == 6) {
                        sum = sum + day;
                    } else {//过满了整月
                        sum = sum + 30;
                    }
                case 5:
                    if (month == 5) {
                        sum = sum + day;
                    } else {//过满了整月
                        sum = sum + 31;
                    }
                case 4:
                    if (month == 4) {
                        sum = sum + day;
                    } else {//过满了整月
                        sum = sum + 30;
                    }
                case 3:
                    if (month == 3) {
                        sum = sum + day;
                    } else {//过满了整月
                        sum = sum + 31;
                    }
                case 2:
                    if (month == 1) {
                        sum = sum + day;
                    } else {//过满了整月并且要判断是闰年还是平年
                        if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) {//闰年
                            sum = sum + 29;
                        } else {//平年
                            sum = sum + 28;
                        }
                    }
                case 1:
                    if (month == 1) {
                        sum = sum + day;
                    } else {//过满了整月
                        sum = sum + 31;
                    }
            }
            document.write(year + "年" + month + "月" + day + "日是该年的第" + sum + "天");
        }
        YearMonthNum()
    </script>
</body>
</html>

案例九 猴子吃桃问题

<script>
    var day = 1;
    for (i = 10; i > 1; i--) {
        day = (day + 1) * 2;
        document.write("第"+i+ "天"+ day+"<br>")
    }
</script>
dy>

JS(第八课)循环语句中常用到的案例_星辰镜的博客-CSDN博客

上篇文章的所有案例要求用现在所学的函数进行封装 这步操作 是让你更好的理解函数的作用




相关文章
|
12天前
|
JavaScript 前端开发 Java
[JS]同事:这次就算了,下班回去赶紧补补内置函数,再犯肯定被主管骂
本文介绍了JavaScript中常用的函数和方法,包括通用函数、Global对象函数以及数组相关函数。详细列出了每个函数的参数、返回值及使用说明,并提供了示例代码。文章强调了函数的学习应结合源码和实践,适合JavaScript初学者和进阶开发者参考。
25 2
[JS]同事:这次就算了,下班回去赶紧补补内置函数,再犯肯定被主管骂
|
11天前
|
前端开发 JavaScript 开发者
除了 Generator 函数,还有哪些 JavaScript 异步编程解决方案?
【10月更文挑战第30天】开发者可以根据具体的项目情况选择合适的方式来处理异步操作,以实现高效、可读和易于维护的代码。
|
25天前
|
JavaScript 前端开发
JavaScript 函数语法
JavaScript 函数是使用 `function` 关键词定义的代码块,可在调用时执行特定任务。函数可以无参或带参,参数用于传递值并在函数内部使用。函数调用可在事件触发时进行,如用户点击按钮。JavaScript 对大小写敏感,函数名和关键词必须严格匹配。示例中展示了如何通过不同参数调用函数以生成不同的输出。
|
27天前
|
存储 JavaScript 前端开发
JS函数提升 变量提升
【10月更文挑战第6天】函数提升和变量提升是 JavaScript 语言的重要特性,但它们也可能带来一些困惑和潜在的问题。通过深入理解和掌握它们的原理和表现,开发者可以更好地编写和维护 JavaScript 代码,避免因不了解这些机制而导致的错误和不一致。同时,不断提高对执行上下文等相关概念的认识,将有助于提升对 JavaScript 语言的整体理解和运用能力。
|
1月前
|
JavaScript 前端开发
js教程——函数
js教程——函数
32 4
|
1月前
|
存储 JavaScript 前端开发
js中函数、方法、对象的区别
js中函数、方法、对象的区别
16 2
|
1月前
|
JavaScript 前端开发 Java
【javaScript数组,函数】的基础知识点
【javaScript数组,函数】的基础知识点
23 5
|
1月前
|
JavaScript 前端开发
Node.js 函数
10月更文挑战第5天
22 3
|
1月前
|
前端开发 JavaScript
探索JavaScript函数基础
探索JavaScript函数基础
18 3
|
30天前
|
存储 JavaScript 前端开发
JavaScript数据类型全解:编写通用函数,精准判断各种数据类型
JavaScript数据类型全解:编写通用函数,精准判断各种数据类型
18 0