Изчисляване числа от ред на Фибоначи

Редицата съдържаща числа на Фибоначи се формира по следния начин: Първите два члена обикновено имат стойност 1, всеки следващ е равен на сумата от 2-та предхождащи го елемента.

Пример: 1,1,2,3,5,8 .... 

Следва примерна програма с решена задача за намиране числа от ред на Фибоначи чрез итерация:

Да се състави програма, която изчислява числа от ред на Фибоначи. Първите 2 елемента се  въвеждат, а всеки следващ е равен на сумата от предходните два елемента.  
Програмата да извежда стойността на указан номер елемент от тази редица, както и сумата от 1-вия до указания елемент.  
Входни данни: 1-ви и 2-ри елемент и броя елементи - естествени числа [1..50].  
Пример: 3,4, 5  Изход: сума 43,  5-ти елемент 18. 
#include<iostream>
using namespace std;

int main()//nachalo na programata
{ int pyr,wto,nom,sum,por,ele;//deklarirane na promenliwite 
 cout<<"Systawete programa, koqto izchislqwa elementi ot redica na Fibonachi. \n"; 
 cout<<"Pyrwite 2 elementa se wywevdat, a wseki sledwash e rawen na sumata \n"; 
 cout<<"ot predhodnite dwa elementa. Programata da izwevda ukazan nomer \n"; 
 cout<<"element ot tazi redica, kakto i sumata ot 1-wiq do ukazaniq element. \n"; 
 cout<<"Whodni danni: 1-wi i 2-ri element i broj elementi - estestweni chisla."<<endl; 
 cout<<"Primer: 3,4, 5. Izhoden rezultat: suma 43,  5-ti element 18.\n"; 
 cout<<endl; 
 sum=0;//inicializirane na promenliwata za broj wywedeni 
 cout<<"Wywedete stojnostta na 1-wiq element [1..10]: ";cin>>pyr; 
 cout<<"Wywedete stojnostta na 2-riq element [1..10]: ";cin>>wto; 
 cout<<"Wywedete broj elementi [5..10]: ";cin>>nom; 
 por=2;//imame wywedeni weche 2 elementa 
 sum=pyr+wto;//symata ot weche wywedenite 2 elementa 
 while (por<nom) //cikylot interwala 2 - nom 
 {//tqlo na cikala she izchislqwa poredniq element i natrupana suma 
 por++;//uwelichawa s 1 stojnostta na por 
 ele=pyr+wto; //sledwashiq element e suma ot predhodnite 2 
 cout<<"Element "<<por<<" e: "<<ele<<endl; 
 sum+=ele;//uwelichawame sumata s nowopolucheniq element 
 pyr=wto;//za sledwashata stypka n-2-riq element 
 wto=ele;//za sledwashata stypka n-1-wiq element 
 }//kraj na cikyla 
 cout<<"Natrupanata suma e: "<<sum<<", a element "<<por<<" e rawen na: "<<ele<<endl; 
 system("pause");
 return 0; 
} //kraj na programa Fibonachi;

Следва примерна програма с решена задача за намиране числа от ред на Фибоначи чрез рекурсия:
#include <iostream> 
using namespace std; 
  
long have_fib(int nom ) 
{//tqlo na rekursiwnata funkciq 
   if (nom<3)   { return (1);} 
 else 
 {return    ( have_fib(nom-1)+have_fib(nom-2)); } 
}//kraj na rekursiwnata funkciq Fibonachi
  
int main() 
{   int nom; 
  cout<<"Da se systawi programa, izpolzwasha rekursiwna funkciq,\n"; 
  cout<<"koqto izchislqwa red na Fibonachi. Chislo s poreden nomer >2\n"; 
  cout<<"se obrazuwa kato sbor ot chislata s poredni nomera n-1 i n-2.\n"; 
  cout<<"Whodni danni: estestweno chislo ot interwala [3 - 43].\n"; 
  cout<<"Primer: 8   izhod 21.\n"; 
  cout<<"Koe chislo ot reda da se izwede [3 - 43]: "; cin>>nom; 
   if
 (nom>2) 
 {cout<<"Poluchenoto chislo e: "<<have_fib(nom)<<endl;} 
 else {cout<<"Programata tyrsi chislo s poreden nomer >2.\n";} 
system("pause");
return 0;
}//kraj na programa Fibonachi

Обяснени и решени задачи с подобни алгоритми, функции и служебни думи са разгледани в страницата с електронни уроци по информатика - програмиране.
Илюстриране работата на характерни алгоритми можете да намерите в предоставените електронни помагала съдържащи решени задачи, примери.

 
Размер на шрифта
Increase Font Size Option 3 Reset Font Size Option 3 Decrease Font Size Option 3
Bulgarian Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish
Търсене в сайта: