سوال ششم Project Euler(همراه راه حل)
سه شنبه, ۱۹ دی ۱۳۹۱، ۱۱:۳۱ ق.ظ
متن سوال:
حاصل جمع مجذور اعداد 1 تا 10 برابر است با
12 + 22 + ... + 102 = 385
و مجذور حاصل جمع تمام اعداد 1تا 10 برابر است با
(1 + 2 + ... + 10)2 = 552 = 3025
اختلاف حاصل جمع مجذور اعداد 1 تا 10 و مجذور حاصل جمع تمام اعداد 1تا 10 برابر است با 385 3025 = 2640
پیدا کنید اختلاف حاصل جمع مجذور اعداد 1 تا 100 و مجذور حاصل جمع تمام اعداد 1تا 100.
روش اول:
مثل همیشه تک تک رو حساب می کنیم.این یکی خیلی راحته.
اینم کدش:
int
sum = 0;
int
squared = 0;
int
result = 0;
const
int
N = 100
for
(
int
i = 1; i sum += i;
squared += i * i;
}
result = sum * sum - squared;
روش دوم:
هیمین طور که می دونید برای شمردن جمع عدد های یک تا n فرمول زیر حاکم است.
و همچنین برای توان دو ین فرمول برقراره:
خب کد زدن این روش هم آسونه:
long
sum = 0;
long
squared = 0;
long
result = 0;
const
int
N = 100;
sum = N * (N+1)/ 2;
squared = (N * (N + 1) * (2 * N + 1)) / 6;
result = sum * sum - squared;
جواب برابر است با:25164150
- ۹۱/۱۰/۱۹
- ۱۵۳۷ نمایش