سوال ششم 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
- ۹۱/۱۰/۱۹
- ۱۶۰۴ نمایش