首页 > JavaScript for循环,没有思路怎么办,初学,看到题目就会无头绪

JavaScript for循环,没有思路怎么办,初学,看到题目就会无头绪

比如计算100~200内的所有素数。怎么用for循环嵌套实现呢


你先不用代码,尝试自己在纸上一步步是怎么解决这个问题。

比如你肯定会从100开始数,然后判断这个数是不是素数。
如果是素数就累积一下总和。
如果不是就继续数。

最终你数到了200,你也就知道了最终的和。

然后你就可以把这个流程写成代码了。


非常简单的一套朴素算法题,按照素数的本质定义一个判断素数的函数isPrime

var isPrime = function (num) {
    if (num <= 1) {
        return false;
    }
    for (var i = 2; i * i <= num; i++) {
        if (num % i == 0) {
            return false;
        }
    }
    return true;
}

for (var i = 100; i <= 200; i++) {
    if (isPrime(i)) {
        console.log(i);
    }
}

function prime(n){
    var primeArr=[];
    for(var i = 100;  i <= n; i++){
        var flag=true;
        for (var j = 2;j <= i - 1;j++) {
                if (i % j == 0)
                    flag = false;
            }
        if(flag){
           primeArr.push(i);
        }
    }
    return primeArr;
}
prime(200);

  1. 从100开始计数,在计算机里,我们就需要设置一个变量i=100,我们再准备好一个用来存放素数和的变量sum=0

  2. 判断当前数i是否为素数,如果是,sum=sum+i

  3. 继续数数,即i=i+1.如果i>200,那么结束,sum的值就是素数之和,否则重复第2部

    这就是一个循环的步骤,在大部分语言中,都提供了for循环,来简化以上的步骤。
    for(设置初始变量,例如i=100, sum=0; 判断是否进入这一个循环,如果不符合条件,结束循环; 循环体内执行一次后需要变化的数据,如i=i+1){
        这里是循环体
    }

只是算法而已,先写伪代码,把主要的写出来,再翻译成js,实在不行先写成c语言,然后稍微改一些

【热门文章】
【热门文章】