2020-09-09 条件循环案例

for循环作业

第四题:用户输入一个数字n,计算1+2+3+4+……n的和。

        // let n = parseInt(prompt("请输入一个数字"))

        // let sum = 0

        // for(let i = 1; i <= n; i++){

        //     sum += i

        // }

        // alert(`1+2+3+...+n的和为${sum}`)

第五题:用户输入一个数字n

        // let n = parseInt(prompt("请输入一个数字"))

        // let sum = 0

        // for(let i = 2; i <= n; i++){

        //     sum += (i+1) / i

        // }

        // alert(`3/2+4/3+5/4+...+n+1/n的和为${sum}`)

第六题:用户输入一个数字,在控制台中列出它的所有约数。

        //@1 正序求解

        // var n = parseInt(prompt("请输入一个数字"));

        // var sum = 0;

        // for(var i = 1 ; i <= n ;i++){

        //     if(n%i == 0){

        //         console.log(i);

        //         sum += i;

        //     }

        // }

        // alert(`${n}所有约数的和为${sum}`)


        //@2 倒序循环求解

        // let n = parseInt(prompt("请输入一个数字"));

        // for(i = n ; i >= 1 ; i--){

        //  if(n % i == 0){          

        //      console.log(i);

        //  }

        // }

第七题:在控制台输出1~1000之中,所有能被5整除,或者被6整除的数字。

        // for(let i = 1; i <= 1000; i++){

        //     let num1 = i % 5

        //     let num2 = i % 6

        //     if(num1 + num2 == 0){

        //         console.log("既能被5整除,也能被6整除的有:" + i)

        //     }else if(num1 == 0){

        //         console.log("能被5整除的有:" + i)

        //     }

        //     else if(num2 == 0){

        //         console.log("能被6整除的有:" + i)

        //     }

        // }

方法二:

    // for (var i = 1; i <= 1000; i++) {

    //   if (i % 5 == 0 || i % 6 == 0){

    //     console.log(i)

    // }


第八题:大家从小到大,都玩儿过的一个庸俗的游戏:

游戏玩儿法就是,大家轮流报数,如果报到能被7整除的数字,或者尾数是7的数字,都算踩地雷了。就应该罚唱歌。

请在控制台输出1~60之间的所有“安全数”。

比如:

1、2、3、4、5、6、8、9、10、11、12、13、15、16、18、19、20、22、23、24、25、26、29、30……

        // for(let i = 1; i <= 60; i++){

        //     if(i % 10 != 7 && i % 7 != 0){

        //         console.log("安全数为:" + i)

        //     }

        // }

        // 短路算法

       // for(var i = 1; i <= 60; i++){

       //   (i % 7 != 0 && i % 10 != 7) && console.log(i)

       // }

第九题:水仙花数是一种特殊的三位数,它的特点就是,每个数位的立方和,等于它本身。

比如153就是水仙花数。因为:

1 3+53+33 = 153

100~999之内,只有4个水仙花数,请编程找出来。

        // for(let i = 1; i <= 9; i++){

        //     for(let j = 9; j >= 0; j--){

        //         for(let k = 9; k >= 0; k--){

        //             let sum = Math.pow(i,3) + Math.pow(j,3) + Math.pow(k,3)

        //             let res = 100 * i + 10 * j + k

        //             if(sum == res){

        //                 console.log(res)

        //             }

        //         }

        //     }

        // }

第十题:如果一个数恰好等于它的因数(除了这个数字自身)之和,则称该数为“完美数”。

例如:

第1个完全数是6,它有因数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6。

第2个完全数是28,它有因数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。

试寻找1~10000之间的所有完美数。

        //第十题:除去本身外的因数相加等于本身的完美数

        // for(var i = 1; i <= 10000; i++){

        //     var sum = 0;

        //     for(var j = 1; j < i; j++){

        //         if(i % j == 0){

        //             sum += j

        //         }

        //     }

        //     if(sum == i){

        //         console.log(i + "是完美数")

        //     }

        // }

第十一题:苹果3元一个,鸭梨2元一个,桃子1元一个。现在想用200元买100个水果,在控制台中列出所有可能性。

        // let count = 0

        // for(let i = 100; i >= 0; i--){

        //     for(let j = 100 - i; j >= 0; j--){

        //         for(let k = 100 - i - j; k >= 0; k--){

        //             let sum = i + j + k

        //             let res = 3 * i + 2 * j + k

        //             if(sum == 100 && res == 200){

        //                 count++

        //                 console.log(count) //51种可能

        //                 console.log("可能性有:" + i + "个苹果" + j + "个梨" + k + "个桃子")

        //             }

        //         }

        //     }

        // }

方法一
方法二

方法三

第十二题:用户输入一个数字,判断这个数字是否是质数。

        //第十二题:判断一个数是否是质数

        //方法一

        let n = parseInt(prompt("请输入一个数字"))

        if(n == 2 || n == 3){

            alert(`${n}是质数`)

        }else if(n <= 1 || n % 2 == 0){

            alert(`${n}不是质数`)

        }else{ 

            for(let i = 3; i <= Math.sqrt(n); i += 2){

                if(n % i == 0){

                    alert(`${n}不是质数`)

                    end; //满足循环条件则直接结束,不满足则结束判断

                }

            }

            alert(`${n}是质数`)

        }

        //1-50的质数有:2、3、5、7、11、13、17、19、23、29、31、37、41、43、47

方法一


方法二


方法

                                                          注意:if判断条件的优先级

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。