下面进入案例
案例一 实现斐波那契数列,输入第几项,返回这个值并输出 函数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+" "+two+" "+three+" "+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博客
上篇文章的所有案例要求用现在所学的函数进行封装 这步操作 是让你更好的理解函数的作用