码迷,mamicode.com
首页 > 其他好文 > 详细

(笔试题)被3和5整除的数的和

时间:2015-06-17 11:00:44      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

题目:

给定一个数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;
}

  

(笔试题)被3和5整除的数的和

标签:

原文地址:http://www.cnblogs.com/AndyJee/p/4582523.html

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