سوال اول Project Euler(همراه راه حل)
پنجشنبه, ۱۴ دی ۱۳۹۱، ۰۲:۵۹ ب.ظ
متن سوال 1:
اگر تمام مضرب های 3و5 که کمتر از 10 هستند را لیست کنیم به اعداد 3و5و6و9 می رسیم که مجموع آنها 23 است.
حاصل جمع تمام مضرب های 3 و 5 که کوچکتر از 1000 هستند را پیدا کنید.
حل:
روش چک کردن تک به تک حالات (Brute forcing)
در این روش با استفاده از یک حلقه از اعداد 1تا1000پیش می رویم وتک تک عدد ها را چک می کنیم.
int relust=0;
for (int i = 1; i < 1000; i++) {
if (((i % 3) == 0) || ((i % 5) == 0)) {
result += i;
}
}
حاصل جمع برابر خواهد بود با 233168
روش دوم:
اگر خوب به این دنباله توجه کنید خواهید دید که تمام مضارب را به یک صورت دیگر
هم می توان نوشت.
999+....+3+6+9=(333+...+1+2+3)*3
995+....+5+10+15=(199+...+1+2+3)*5
همچنین فرمول محاسبه مجموع اعداد 1تا nبرابر است با
2/(1+n*(n
- ۹۱/۱۰/۱۴
- ۲۴۶۶ نمایش