javascript - 欧拉计划 #5 Javascript

标签 javascript

问题是:

2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder. What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20?

这是我的代码:

var calculation = function(){
        var result = 0;
        for(var i = 20; i == 10000000000000; i++){
                for(var e = 2; e == 20; e++){
                        if(i % e == 0){
                                result = i;
                        }
                }
        }
        alert(result);      
}
calculation();

问题是程序只输出0

最佳答案

有更优雅的方法来解决这个问题,但要解决您当前的问题,for 循环的“条件”部分需要返回 true,当您想要继续循环,而不是当你想停止它时。所以你的 for 循环应该是这样的:

for(var i = 20; i <= 10000000000000; i++){
    for(var e = 2; e <= 20; e++){
        ...
    }
}

在循环内部,您遇到了另一个问题。您正在设置 result if i % e == 0 但您从未定义停止情况。换句话说,result 将是您通过该测试的最后一个数字,即使它未通过 ie 的所有其他测试。你必须做这样的事情:

for(var i = 20; i <= 10000000000000; i++){
    bool found = true;
    for(var e = 2; e <= 20; e++){
        if (i % e != 0) {
            found = false;
            break; // stop testing other divisors
        }
    }
    if (found) {
        return i;
    }
}

关于javascript - 欧拉计划 #5 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21177774/

相关文章:

javascript - 为什么 Javascript 闭包被称为安全的

javascript - 循环遍历以数组为值的对象的对象

我不明白两个不同函数之间的 JavaScript 行为

javascript - 我怎样才能每次 vol > 6 时以 1 计数

javascript - 使用 jQuery 动态创建图形

javascript - 没有 JQuery 的 AJAX POST 到 PHP

javascript - polymer 输入自动完成

javascript - 如何移动包含当前表单字段值的 DOM 部分?

javascript - 在 javascript 对象数组中查找元素的索引

javascript - 使用键元素在 json 对象中查找值对