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博客

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




相关文章
|
5天前
|
JavaScript 前端开发
JavaScript基础&实战(4)js中的对象、函数、全局作用域和局部作用域
这篇文章介绍了JavaScript中对象的基本概念和操作,包括对象属性和方法的使用、对象字面量的创建、函数的定义和作用域的概念,以及全局作用域和局部作用域的区别和特性。
JavaScript基础&实战(4)js中的对象、函数、全局作用域和局部作用域
|
5天前
|
JavaScript
js中有哪些函数?
js中有哪些函数?
7 0
|
5天前
|
JavaScript 前端开发 Java
JavaScript 特殊函数
JavaScript 特殊函数
6 0
|
5天前
|
JavaScript 前端开发
JavaScript 函数中break,continue,return 的区别
JavaScript 函数中break,continue,return 的区别
15 0
|
5天前
|
JavaScript 前端开发
JS - 立即执行函数
这篇文章解释了JavaScript中的立即执行函数(IIFE,Immediately Invoked Function Expression)的概念和用法,它用于创建局部作用域以避免全局变量的污染。文中提供了多种立即执行函数的示例,展示了如何通过不同的语法结构立即调用函数。
13 0
|
8天前
|
JavaScript 前端开发
JavaScript——实现compose函数
JavaScript——实现compose函数
14 0
|
8天前
|
JavaScript 前端开发
JavaScript——实现一些常用函数
JavaScript——实现一些常用函数
9 0
|
8天前
|
JavaScript
Vue——使用JS文件中的函数ESLint报错未定义
Vue——使用JS文件中的函数ESLint报错未定义
18 0
|
8天前
|
存储 JavaScript 前端开发
js之函数区别
js之函数区别
13 0
|
8天前
|
存储 JavaScript 索引
js arguments 的使用与自执行函数
js arguments 的使用与自执行函数
11 0

热门文章

最新文章