• Project Euler 第一题效率分析


    Project Euler:

    • 欧拉计划是一系列挑战数学或者计算机编程问题,解决这些问题需要的不仅仅是数学功底。
    • 启动这一项目的目的在于,为乐于探索的人提供一个钻研其他领域并且学习新知识的平台,将这一平台打造一个有趣和休闲

    的环境。

    第一题 Multiples of 3 and 5

    If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these

    multiples is 23. Find the sum of all the multiples of 3 or 5 below 1000.

    解决思路

    • 方法一:for 循环
    for (int i=0; i<1000; i++) {
        if (i%3==0 || i%5==0)
        sum+=i;
    }
    • 方法二:等差数列求和
    sum2 = ((number-1)/3+1)*((number-1)/3)*3/2   // 计算被3整除的数字之和
        + ((number-1)/5+1)*((number-1)/5)*5/2    // 计算被5整除的数字之和
        - ((number-1)/15+1)*((number-1)/15)*15/2;// 计算被 3*5 整除的数字之和

    备注:方法二最开始写时,居然忘了要减去被15整除的数字之和。眨眼

    效率分析

    ns为单位执行时间如下:

    n

    方法一 (ns)

    方法二 (ns)

    1

    44235

    1843

    2

    44235

    1844

    3

    44235

    2457

    4

    44234

    1843

    平均值

    44234.75

    1996.75

    方法一用时约是方法二的22倍。

    多一点思考,多一些效率,终于找到现在公司系统开销大的原因了。

  • 相关阅读:
    Redis的安装与使用
    jQuery操作input值总结
    jquery获得select option的值和对select option的操作
    jsp弹出新窗口代码
    MyEclipse10.0优化
    MyEclipse安装FreeMarker插件
    增强MyEclipse的代码自动提示功能
    PowerDesigner 技巧【3】
    PowerDesigner 快捷键
    PowerDesigner 技巧【2】
  • 原文地址:https://www.cnblogs.com/willsuna/p/4925846.html
Copyright © 2020-2023  润新知