JS: for循环_练习题(16道常规题)

1.入职薪水10K,每年涨幅5%,50年后工资多少?

    <script>
        function practice() {
            var pay = 10000;
            for (let i = 0; i < 50; i++) {
                pay += pay * 0.05;
            }
            console.log(pay.toFixed(2));
        }
        btn1.onclick = function () {
            practice();
        } 
    </script>

2.打印100以内 7的倍数

    <script>
        function practice() {
            for (let i = 0; i <= 100; i += 7) {
                console.log(i);
            }
        }
        btn2.onclick = function () {
            practice();
        } 
    </script>

3.打印100以内的奇数

    <script>
        function practice() {
            for (let i = 1; i <= 100; i++) {
                i % 2 === 1 ? console.log(i) : "我是谁?";
            }
        }
        btn3.onclick = function () {
            practice()
        }
    </script>

4. 打印100以内所有偶数的和

    <script>
        function practice() {
            var sum = 0;
            for (let i = 1; i <= 100; i++) {
                i % 2 === 0 && (sum += i);
            }
            console.log(sum);
        }
        btn4.onclick = function () {
            practice()
        }
    </script>

5. 打印图形

<script>
        /* 10*4方阵 */
        function prastice1() {
            for (var row = 1; row <= 4; row++) {
                /* 打印10列小行星 */
                for (var i = 1; i <= 10; i++) {
                    document.write("*")
                }
                /* 打印换行符 */
                document.write("<br>")
            }
        }


        /* 小旗子 */
        function prastice2() {
            for (var row = 1; row <= 5; row++) {
                /* 打印row个小星星 */
                for (var i = 1; i <= row; i++) {
                    document.write("*")
                }
                /* 打印换行 */
                document.write("<br>")
            }
        }


        /* 正三角 */
        function prastice3() {
            for (var i = 1; i <= 4; i++) {
                var delta = 4 - i
                for (var j = 1; j <= 7; j++) {
                    if (j <= delta || j > 7 - delta) {
                        document.write("<span style='width:7px;
                                        display:inline-block'></span>")
                    } else {
                        document.write("*")
                    }
                }
                document.write("<br>")
            }
        }


        /* 打橄榄 */
        function prastice4() {
            for (var i = 1; i <= 7; i++) {
                // 得到行号与4的差值(绝对值)
                // var delta = 4 - i > 0 ? 4 - i : i - 4
                var delta = Math.abs(4 - i)
                for (var j = 1; j <= 7; j++) {
                    if (j <= delta || j > 7 - delta) {
                        document.write("<span style='width:7px;
                                          display:inline-block'></span>")
                    } else {
                        document.write("*")
                    }
                }
                document.write("<br>")
            }
        }
    </script>

6. 打印100–200之间所有能被3或者7整除的数

    <script>
        function practice() {
            for (let i = 100; i <= 200; i++) {
                (i % 3 === 0 || i % 7 === 0) && console.log(i);
            }
        }
        btn6.onclick = function () {
            practice()
        }
    </script>

7. 计算10的阶乘 10!

    <script>
        var a = 1;
        function practice() {
            for (let i = 1; i <= 10; i++) {
                a *= i;
            }
            console.log(a);
        }
        btn7.onclick = function () {
            practice()
        }
    </script>

8. 计算1+3+5+...+99的和

    <script>
        var sum = 0;
        function practice() {
            for (let i = 1; i < 100; i++) {
                sum += i;
            }
            console.log(sum);
        }
        btn8.onclick = function () {
            practice()
        }
    </script>

9. 99乘法表

     <script>
        var sum = 0;
        function practice() {
            // 输出row行
            for (var row = 1; row <= 9; row++) {
                // 输出col列
                for (var col = 1; col <= row; col++) {
                    document.write(`${col}*${row}=${col * row}&nbsp;&nbsp;`)
                }
                document.write("<br>")
            }
        }
        btn9.onclick = function () {
            practice()
        }
    </script>

10. 求100-999之间的水仙花数。 算法 : abc = a ³ + b³ + c ³

    <script>
        var sum = 0;
        function practice() {
            for (var i = 100; i <= 999; i++) {

                var bw = parseInt(i / 100)
                var sw = parseInt(i % 100 / 10)
                var gw = i % 10

                if (i === Math.pow(bw, 3) + Math.pow(sw, 3) + Math.pow(gw, 3)) {
                    console.log(`水仙花数:${i}`);
                }

            }
        }
        btn10.onclick = function () {
            practice()
        }
    </script>

11. 输出20-80之间能被3整除的整数,每5个一行

    <script>
        var sum = 0;
        function practice() {
            var count = 0;
            for (let i = 20; i <= 80; i++) {
                if (i % 3 === 0) {
                    document.write(i + "&nbsp;");
                    count++;
                    count % 5 === 0 && document.write("<br>");
                }
            }
        }
        btn11.onclick = function () {
            practice()
        }
    </script>

12. 打印出1000-2000年中所有的闰年,并以每行四个数的形式输出

    <script>
        var sum = 0;
        function practice() {
            var count = 0
            for (var i = 1000; i < 2001; i++) {
                if ((i % 4 === 0 && i % 100 !== 0) || (i % 400 === 0)) {
                    document.write(i + "&nbsp;&nbsp;")
                    count++
                    count % 4 === 0 && document.write("<br>")
                }
            }
        }
        btn12.onclick = function () {
            practice()
        }
    </script>

13 . 求1+2!+3!+...+20!的值

    <script>
        var sum = 0;
        function practice() {
            var sum = 0;
            for(var out=1;out<=20;out++){

                /* 内层循环求出out的阶乘 */
                var outJc = 1;
                for(var i=1;i<=out;i++){
                    outJc *= i;
                }
                console.log(out+"的阶乘是"+outJc);

                /* 自加out(1~20)的阶乘 */
                sum += outJc;
                console.log("sum=",sum);
            }
        }
        btn13.onclick = function () {
            practice()
        }
    </script>

14. 打印出1-100里所有的偶数

  <script>
        var sum = 0;
        function practice() {
            for (var i = 1; i <= 20; i++) {
                if (i % 2 === 0) {
                    document.write(i + '&nbsp;');
                }
            }
        }
        btn14.onclick = function () {
            practice()
        }
    </script>

15. 打印出1-100里所有的奇数

<script>
        var sum = 0;
        function practice() {
            for (var i = 1; i <= 20; i++) {
                if (i % 2 === 1) {
                    document.write(i + '&nbsp;');
                }
            }
        }
        btn14.onclick = function () {
            practice()
        }
    </script>

16. 求出1/1-1/2+1/3-1/4…..1/100的和

    <script>
        var sum = 0;
        function practice() {
            var sum = 0
            for (var fm = 1; fm <= 100; fm++) {
                // 分母是奇数时 sum+= 1/fm 否则sum += -1/fm
                var item = fm % 2 === 1 ? 1 / fm : -1 / fm
                console.log(item);

                sum += item
            }
            console.log('1/1-1/2+1/3-1/4…..1/100的和:' + sum);
        }
        btn16.onclick = function () {
            practice()
        }
    </script>

17. 输出100-200之间所有的素数

    <script>
        /* 判断n是否素数 */
        function isPrimeNumber(n) {
            // 1 不是素数
            if (n === 1) {
                return false;
            }
            // 遍历n是否存在因子
            for (let i = 2; i < n - 1; i++) {
                if (n % i === 0) {
                    return false;
                }
            }
            // 将[2,n-1]都遍历了一遍 一个因子都没有 则n是素数
            return true;
        }

        function printPrimeNumber(start, end) {
            for (let i = start; i <= end; i++) {
                isPrimeNumber(i) && console.log(i); 
            }
        }

        printPrimeNumber(100,200);
    </script>

18. 求s=a+aa+aaa+aaaa+….+aa...a的值,其中a是一个数字。例如2+22+222+2222

    <script>
        function createExpr(a, n) {
            var expr = '';
            for (let i = 1; i <= n; i++) {
                var item = '';
                for (let j = 0; j < i; j++) {
                    item += a;
                }
                expr += `${i === 1 ? '' : '+'}${item}`
            }
            return expr;
        }
        console.log( createExpr(6,10) );
        //6+66+666+6666+66666+666666+6666666+66666666+666666666+6666666666
    </script>

19. 操场上 100 多人排队 ,3 人一组多 1 人 ,4 人一组多 2 人 ,5 人一组多 3 人 , 共多少人

    <script>
        function lineUp() {
            for (let i = 100; i < 200; i++) {
                if (i % 3 === 1 && i % 4 === 2 && i % 5 === 3) {
                    console.log(i);//118  178
                }
            }
        }
        lineUp();
    </script>

20. 两个自然数相除 , 商 3 余 10, 被除数 , 除数 , 商 , 余数的和是 163, 求被除数 , 除数

    <script>
        function fn20() {
            for (var cs = 1; cs <= 150 / 4; cs++) {
                var bcs = 3 * cs + 10
                if (bcs + cs + 3 + 10 === 163) {
                    console.log(bcs, cs);
                }
            }
        }
        fn20();//115 35
    </script>

 

21. 假设某人有 100,000 现金。 每经过一次路口需要进行一次交费。交费规则为当他现金大于50,000 时每次需要交 5%, 如果现金小于等于 50,000 时每次交 5,000 。 请写一程序计算此人可以经过多少次这个路口。

    <script>
        function Pass(money) {
            // var money = 100000;
            var times = 0;
            while (money >= 5000) {
                if (money >= 50000) {
                    money *= 0.95;
                } else {
                    money -= 5000;
                }
                times++;
            }
            return times;
        }
        console.log("经过多少次这个路口:", Pass(100000));
    </script>

22. 《张丘建算经》 成书于公元 5 世纪, 作者是北魏人. 书中最后一道题堪称亮点, 通常也被称为“ 百钱买百鸡 ” 问题,民间则流传着县令考问神童的佳话书中原文如下:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

    <script>
        function hundredChickens() {
            for (let gj = 0; gj <= 100; gj++) {
                for (let mj = 0; mj <= 100; mj++) {
                    for (let xj = 0; xj <= 100; xj++) {
                        if (gj * 5 + mj * 3 + xj * 1 / 3 === 100 && gj + mj + xj === 100) {
                            console.log(`鸡翁:${gj}鸡母:${mj}鸡雏:${xj}`);
                            // 鸡翁:0  鸡母:25 鸡雏:75
                            // 鸡翁:4  鸡母:18 鸡雏:78
                            // 鸡翁:8  鸡母:11 鸡雏:81
                            // 鸡翁:12 鸡母:4  鸡雏:84
                        }
                    }
                }
            }
        }
        hundredChickens();
    </script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值