PE1 Multiples of 3 or 5
题意
求 \(\displaystyle\sum_{x=1}^{999}x\cdot[3\mid x\lor5\mid x]\)
思路
思路 1
遍历 \(1\) 到 \(999\),直接求。
#include<iostream>
#define forUp(i,a,b) for(int i=(a);i<=(b);++i)
using namespace std;
int ans;
int main(){
forUp(x,1,999)if(x%3==0||x%5==0)ans+=x;
cout<<ans;
return 0;
}
思路 2
利用容斥原理。
#include<iostream>
#define forUp(i,a,b) for(int i=(a);i<=(b);++i)
using namespace std;
int num3,num5,num15,ans;
int S(int n){
return n*(n+1)/2;
}
int main(){
num3=999/3,num5=999/5,num15=999/15;
ans=3*S(num3)+5*S(num5)-15*S(num15);
cout<<ans;
return 0;
}

浙公网安备 33010602011771号