Небольшая программа по ряду Фибоначчи

Фибоначчи Python

Для тех кто не знает, кто такой Фибоначчи, то упрощенно скажу, это человек, который придумал эту числовую последовательность: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ... в которой каждое последующее число равно сумме двух предыдущих. В честь учёного она носит название чисел Фибонначи.

Сегодня мы решим следующую задачу из проекта Эйлера(Надеюсь правильно):

Найдите сумму всех чётных элементов ряда Фибоначчи, которые не превышают четыре миллиона

Для того, чтобы решить нашу задачу, необходимо для начала сделать вывод элементов ряда Фибоначчи, Далее, когда мы научимся выводить эти числа, нужно сделать такое условие, чтобы на выходе были числа, которые не превышают 4000 000.

После этого шага, необходимо будет сделать проверку на четность элементов. И последним шагом остается сложить все найденные числа. Давайте для начала разберем код на языке си:

/*
Найдите сумму всех чётных элементов ряда Фибоначчи, которые не превышают четыре миллиона.
 */
 #include <stdio.h>
 #include <stdlib.h>

 int main(int argc, char *argv[])
 {
   float i; //Переменная для цикла
   int fibbonachi[10000], tmp=0, summa=0;

   for(i = 1; i <= 40;i++)
            if (i == 1 || i == 2)
               {
                 fibbonachi[tmp]=i;
                 tmp++;
               }
            else
                {
                 fibbonachi[tmp] = fibbonachi[tmp-2]+fibbonachi[tmp-1];
                 tmp++;
                 //printf("%.0f\n", i);
                }
   for (tmp=0; tmp<=40; tmp++)
       if (fibbonachi[tmp]<=4000000)
          {
           printf("%d\n", fibbonachi[tmp]);   //Печатаем все числа фиббоначи, которые не превышают 4 миллиона
           if (fibbonachi[tmp] % 2 == 0)
                     summa +=  fibbonachi[tmp];
          }

   printf("Сумма всех четных элементов ряда Фиббоначчи, которые не превышают четыре миллиона: %d\n", summa);
   system("PAUSE");  
   return 0;
 }

Получится такой вывод:

1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765
10946
17711
28657
46368
75025
121393
196418
317811
514229
832040
1346269
2178309
3524578
0
Сумма всех четных элементов ряда Фиббоначчи, которые не превышают четыре миллиона: 4613732

Давайте разберем по строчно код:

float i; //Переменная для цикла
int fibbonachi[10000], tmp=0, summa=0;

Это мы объявили переменные, в языке си все переменные объявляются в начале кода и у всех переменных должен быть тип, такой как int(целый тип), float, char итд.(То есть этими действиями программа резервирует память под эти переменные) Про типы переменных вы можете прочитать в интернете.

В 12 строке мы сделали цикл for и дали значение счетчика 40 (Под счетчиком мы имеем ввиду переменную которая будет означать то, сколько раз будет повторяться цикл)

Далее мы добавили условие if и else, так как первые два элемента пропускаются, потому, что числовая последовательность Фибоначчи такая: 1,2,3,5,8,13,21 ...

Дальше подходящие числа присваиваются массиву fibbonachi[]. Во втором цикле for есть условия, в них проверяются числа которые меньше или равны 4000 000 и складываются в переменную summa.

Конечно, можно было написать эту задачу более короче, но оставил этот вариант, чтобы читатель больше разобрался с циклами и с условиями. Дальше я приведу код на языке Python:

 # -*- coding: utf-8 -*- 
 #Найдите сумму всех чётных элементов ряда Фибоначчи, которые не превышают четыре миллиона. Python 3.3

 import sys 
 fibonachi = []
 summa = 0 

 for i in range(1,41):
     if i == 1 or i == 2:
         fibonachi.append(i)
     else:
         fibonachi.append(fibonachi[-1] + fibonachi[-2])

 for i in fibonachi:
     if i <= 4000000:
         if i %2 == 0:
             summa += i
         print (i) 

 print ('Сумма всех четных элементов ряда Фиббоначчи, которые не превышают четыре миллиона: ' + str(summa))

Получился такой вывод:

1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765
10946
17711
28657
46368
75025
121393
196418
317811
514229
832040
1346269
2178309
3524578
Сумма всех четных элементов ряда Фиббоначчи, которые не превышают четыре миллиона: 4613732

На питоне код намного короче и смотреть на него очень приятно, поэтому я не буду описывать его строки, попробуйте разобрать сами.

admin

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *