引子:10以下属于3或5的倍数的数有3,5,6和9,它们的和是23。
问题:一个数n,它以下属于3或5的倍数的数的和是多少?
解法:这道题目很简单,但也十分有趣,特别是结果;
1、用计算机直接解决,其C++代码如下
#include<iostream>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
long sum=0;
for(int i=1;i<n;i++)
if(!(i%3)||!(i%5)) sum+=i;
cout<<sum<<endl;
}
}
2、不用计算机也很简单,用数学方法,写出n的通项公式,即sum(n)=(3*(n/3)*(n/3+1)+5*(n/5)*(n/5+1)-15*(n/15)*(n/15+1))/2,当然也可以用这个公式来写计算机程序代码,具体的解法就不写了,否则这个题目就没有意思了,呵呵。
注:不要对sum(n)进行化简,那会出错的。