zoukankan      html  css  js  c++  java
  • (笔试题)被3和5整除的数的和

    题目:

    给定一个数n, 求不超过n的所有的能被3或者5整除的数的和。例如: n = 9,答案3 + 6 + 5 + 9 = 23。
     

    思路:

    能被3或者5整除的数是哪些?

    被3整除的数:3,6,9....[n/3]*3

    被5整除的数:5,10,15...[n/5]*5

    重复的数(同时被3和5整除的数,即被15整除):15,30...[n/15]*15

    于是问题的答案就很明显:

    被3或者5整除的数的和=被3整除的数之和+被5整除的数之和-被15整除的数之和

    因为求和的数列都是等差数列,运用等差数列求和公式即可轻松解决。

    • x是首项,y是项数, d是公差
    • (x  +  x + d * (y – 1)) * y / 2, 注意y = 0也适用

    代码:

    #include <iostream>
    
    using namespace std;
    
    int SumOfArithmeticSeries(int x,int c,int d){
        return (x+x+(c-1)*d)*c/2;
    }
    
    int main()
    {
        int sum_3=0,sum_5=0,sum_15=0;
        int n=9;
        int sum=0;
        sum_3=SumOfArithmeticSeries(3,n/3,3);
        sum_5=SumOfArithmeticSeries(5,n/5,5);
        sum_15=SumOfArithmeticSeries(15,n/15,15);
        sum=sum_3+sum_5-sum_15;
        cout<<sum<<endl;
        return 0;
    }
    

      

  • 相关阅读:
    java多线程详解(1)-多线程入门
    有关java中的hashCode问题
    java自动装箱和自动拆箱注意细节
    jquery选择器
    win10专业版激活密钥
    python3小例子:scrapy+mysql
    java List 等份截取
    七大查找算法
    十大经典排序算法
    jQuery.extend()方法
  • 原文地址:https://www.cnblogs.com/AndyJee/p/4582523.html
Copyright © 2011-2022 走看看