المپیاد کامپیوتر

ترکیبیات,برنامه نویسی,گراف,الگوریتم , و کلا کامپیوتر

المپیاد کامپیوتر

ترکیبیات,برنامه نویسی,گراف,الگوریتم , و کلا کامپیوتر

المپیاد کامپیوتر

سوال اول 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

نظرات (۰)

هیچ نظری هنوز ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی