Project-Euler-001
阿新 • • 發佈:2018-12-14
尤拉計劃裡面都是一些數學題,可以通過程式設計來解決它,只需要輸入最後的結果即可。從簡單到容易,一點一點做,加油!
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~
如果有寫的不對或者不全面的地方 可通過主頁的聯絡方式進行指正,謝謝!