JS05案例总结

案例:水仙花数
案例:棋盘
案例:等腰三角形
案例:100以内质数

知识点:
1、全局变量 局部变量
2、定义函数的2种方式:函数声明、函数表达式
函数声明:哪里都可以 可以先调用后声明
函数表达式:只能先声明后调用
3、形参、实参
4、预解析:变量声明提前、函数声明提前

案例:用函数封装n-m数字的和
案例:用函数封装一个随机数
案例:用函数封装一个等腰三角形
案例:用函数封装一个nn乘法表
案例:简易计算机调用函数

1、水仙花数

<script>
        //水仙花数只是自幂数的一种,严格来说3位数的3次幂数才称为水仙花数
        //水仙花是一个三位数  自幂数  abc=a*a*a+b*b*b+c*c*c   
        // 这里的三位数abc就是水仙花数 每一个位数都是3次幂
        for(var i = 100; i<=999;i++){
    
    
            var a = parseInt(i/100);
            var b = parseInt(i%100/10);
            var c = parseInt(i%10/1);
            if(i==Math.pow(a,3)+Math.pow(b,3)+Math.pow(c,3)){
    
    
                document.write(i+'<br />');
            }
        }
    </script>

2、麦粒和棋牌

/*有一个棋盘,有64个方格,在第一个方格里面放1粒芝麻重量是0.00001kg,
        第二个里面放2粒,第三个里面放4,求出棋盘上放的所有芝麻的重量*/

        //分析:
        /*
        方格:   1  2  3  4  ...64
        麦粒数: 1  2  4  8  ...+ 2的63次方 = 2的64次方-1 
 
        */

        var sum = 0;
        for (var i =1; i<=64; i++){
    
    
            sum+=Math.pow(2,i-1);
        }
        document.write('麦粒数是:'+sum*0.00001);

3、等腰三角形

 // 等腰三角形:外层循环换行;内层循环输出*及空格
    for(var i = 1; i<=5; i++){
    
    
        for(var j =i; j<=5; j++){
    
    
            document.write('&nbsp;')
        }
        for(var k = 1; k<=i; k++){
    
    
            document.write('*'+'&nbsp;')
        }
        document.write('<br />');
    }

4、100以内的质数

   /*
        思路:
        1、一个数跟另一个数取余看是否是0
        2、定义一个变量是质数
        3、计数器  四个一行*/
        // 100以内的质数 四个换一行
        var count = 0; //定义一个变量作为计数器
        for (var i = 2; i <= 100; i++) {
    
    
            // 假设var flag = true是质数
            var flag = true;
            for (var j = 2; j < i; j++) {
    
    
                if (i % j == 0) {
    
    
                    flag = false;
                }    
            }
            // 注意是== 不是赋值!!!
            if (flag == true) {
    
    
                    document.write(i);
                    // 计数器换行
                    count++;
                    if (count % 4 == 0) {
    
      
                        document.write('<br />');
                    }
                }   
        }

5、用函数封装n-m数字的和

//a是最小值 b是最大值
function sum(a,b){
    
    
        var res = 0;
        for (var i = a; i<=b; i++){
    
    
            res+=i
        }
        document.write(res);
        }
        sum(1,100);

6、用函数封装一个随机数

function cal(min,max){
    
    
            var ran = Math.round(Math.random()*(max-min))+min;
            document.write(ran);
        }
        cal(1,10)

7、用函数封装一个等腰三角形

  //外层循环换行 内层循环输出*以及空格
        function star(m) {
    
    
            for (var i = 1; i <= m; i++) {
    
    
                // 注意j
                for (var j =i; j<=m; j++) {
    
    
                    document.write('&nbsp;');
                }
                for(var k=1; k<=i;k++){
    
    
                    document.write('❤')
                }
                document.write('<br />');
            }
        }
        star(10);

8、用函数封装一个nn乘法表

 function calc(n){
    
    
            for(var i = 1; i<=n; i++){
    
    
                for(var j =1; j<=i;j++){
    
    
                document.write(i+'*'+j+'='+i*j+'&nbsp;&nbsp;')
                }
                document.write('<br />')
            }
        }
        calc(9);

9、计算器调用函数

<input type="text" id="inp1">
<select id="sel">
    <option value="+">+</option>
    <option value="-">-</option>
    <option value="*">*</option>
    <option value="/">/</option>
    <option value="%">%</option>
</select>
<input type="text" id="inp2">
<button id="btn">=</button>
<input type="text" id="inp3">
 // 1、为按钮注册点击事件
        btn.onclick = function () {
    
    
            //2、获取inp1 inp2的输入框的值 option的值
            var num1 = inp1.value * 1;
            var num2 = inp2.value * 1;
            var option = sel.value;
            //3、调用函数赋值给inp3
            inp3.value = calc(num1, option, num2);
        }
        function calc(a, option, b) {
    
    
            switch (option) {
    
    
                case '+':
                    return a + b; //函数里面遇到return函数就结束

                case '-':
                    return a - b;

                case '*':
                    return a * b;

                case '/':
                    return a / b;

                case '%':
                    return a % b;
            }
        }

猜你喜欢

转载自blog.csdn.net/weixin_48651630/article/details/107030310