码迷,mamicode.com
首页 > 编程语言 > 详细

最小公倍数算法题收获

时间:2017-02-20 07:40:46      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:nbsp   循环   计算   return   局限性   blog   优雅   如何   ret   

这道题非常典型,我花了很长时间来做,我自己写了80多行代码实现了要求的功能,速度也还可以,但是有很大的局限性,在1-13范围内结果还是正确的,但再大一点就不行了,主要还是在计算方法在数学上站不住脚。

这里面我用到了许多函数,比如数组的排序,如何判断某个数是否是质数,阶乘函数,ruduce方法求数组的和或积。已知最小值和最大值求连续数组。

有几点新的收获可以着重说下:

  • 在循环里用tag来标记布尔值,然后在循环外通过判断tag的值来执行相应的操作,这点非常实用,比如判断质数的时候。同理还有用count来记数。
  • 条件语句其实相当强大,用好了能让代码显得非常的简洁和优雅,比如阶乘函数就是典型的用法(return n>1?n*fib(n-1):1)。
  • 求最大公约数的这个while语句非常经典,要好好领悟消化。代码如下:
        function gcd(a, b) {
            var temp;
            while (b != 0) {
                temp = b;
                b = a % b;
                a = temp;
            }
            return a;
        }

    可对照这个理解:

    gcd(44, 6) //-> 44 % 6 = 2 -> 6 % 2 = 0 -> GCD = 2

     

 

最小公倍数算法题收获

标签:nbsp   循环   计算   return   局限性   blog   优雅   如何   ret   

原文地址:http://www.cnblogs.com/antstory/p/6418011.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!