您的当前位置:首页正文

JavaScript小算法:a^2 + b^2 + c^2 = 1000 求出满足公式 a,b,c的值?

2024-11-07 来源:个人技术集锦
第一种方法:用到3次for循环,不建议使用这种方法,浏览器执行会有一定的延迟
<script>
    or (a = 1; a <= 1000; a++) {
            for (b = 1; b <= 1000; b++) {
                for (c = 1; c <= 1000; c++) {
                    if (Math.pow(a, 2) + Math.pow(b, 2) + Math.pow(c, 2) == 1000) {
                        console.log(a, b, c);
                    }
                }
            }
        }

</script>

对a,b,c进行嵌套循环,然后使用判断语句输出结果

Math.pow(a, 2)这个的意思就是a*a(a的2次方)

查看控制台结果:

第二种方法,只需要用到2次for循环,这种方法推荐,我们平时在写类似的算法时尽量用
2次以下的循环,可以减小浏览器的执行时间!!!
<script>
    for (var a = 1; a <= 1000; a++) {
            for (var b = 1; b <= 1000; b++) {
                var c = parseInt(Math.sqrt(1000 - Math.pow(a, 2) - Math.pow(b, 2)))
                if (Math.pow(a, 2) + Math.pow(b, 2) + Math.pow(c, 2) == 1000 & c != 0) {
                    console.log("输出的a, b, c分别是", a, b, c);
                }
            }
        } 
</script>

我们查看控制台的结果,可以得到相同的结果:

 

 这两种方法的区别是什么呢?

我们使用第一种方法循环的次数是:1000*1000*1000=1000000000(10亿

我们使用第二种方法循环的次数是:1000*1000=1000000(100万

两种方法的循环次数相差了100倍,浏览器执行的时间相差也很大,我们选择下面可以在更短的时间下得到我们想要的结果!!!

Top