欧拉计划里面都是一些数学题,可以通过编程来解决它,只需要输入最后的结果即可。从简单到难,一点一点做,加油!
001题:
题意:
如果我们列出10以内所有3或5的倍数,我们将得到3、5、6和9,这些数的和是23。
求1000以内(不包括1000)所有3或5的倍数的和
思路:
有两个:1.用暴力的方法遍历从1~999,只要是3或5的倍数就累加
2.利用容斥原理,用3的倍数的和 + 5的倍数的和 - 15的倍数的和
代码:
#include <stdio.h>
int main () {
int num3 = 999 / 3; //求出1000以内3的倍数的个数
int num5 = 999 / 5; //求出1000以内5的倍数的个数
int num15 = 999 / 15; //求出1000以内15的倍数的个数
//求出1000以内3的倍数的数的累加和
int ans3 = (1 + num3) * num3 / 2 * 3;
//求出1000以内5的倍数的数的累加和
int ans5 = (1 + num5) * num5 / 2 * 5;
//求出1000以内15的倍数的数的累加和
int ans15 = (1 + num15) * num15 / 2 * 15;
//通过容斥原理求得结果为233168
printf ("%d\n", ans3 + ans5 - ans15);
return 0;
}
Over~
如果有写的不对或者不全面的地方 可通过主页的联系方式进行指正,谢谢!