سؤالات چالش برانگیز
- خانه
- /
- سؤالات چالش برانگیز
- /
- مجموع اعداد زوج دنباله فیبوناچی<
مجموع اعداد زوج دنباله فیبوناچی
دنباله فیبوناچی یکی از دنبالههای معروف در ریاضی است. دو جمله اول این دنباله 1 و 1 هستند و سایر جملات از مجموع دو جمله قبل از خود بدست میآیند. بنابراین جملات این دنباله عبارتاند از:
1, 1, 2, 3, 5, 8, 13, 21, 34, ...البته بعضی متون دو جمله اول را 0 و 1 یا برخی دیگر 1 و 2 در نظر میگیرند. همانطوری که مشاهده میشود بعضی جملات این دنباله عدد فرد و برخی دیگر عدد زوج هستند.
سؤال: مجموع اعداد زوج در دنباله فیبوناچی تا قبل از اینکه دنباله به عدد 4 میلیون برسد را حساب کنید.
راه اول:
def fibonacci_sum_even_numbers(n):
a = 1
b = 1
c = 0
total = 0
while b < n:
if b%2 == 0:
total +=b
c = a+b
a = b
b = c
return total
print(fibonacci_sum_even_numbers(4000000))راه دوم:
همین کار را با استفاده از لیستها نیز میتوان انجام داد.
def fibonacci_sum_even_numbers2(n):
numbers = [1, 1]
total = 0
while numbers[-1] < n:
a = numbers[-1] + numbers[-2]
if a%2 == 0:
total += a
numbers.append(a)
return totalدر این روش تمام دنباله فیبوناچی در لیست numbers ذخیره میشود. واضح است که هیچ نیازی به این کار نیست. بنابراین روش اول از حافظه کمتری استفاده میکند و بهینهتر است.
جواب نهایی: 4613732
- برچسب ها
0 نظر