Fibonači secība C++

Fibonaci Seciba C



Fibonači sērija/secība ir skaitļu virkne, kas izveidota, kad nākamais skaitlis tiek iegūts, veidojot sērijas pēdējo divu skaitļu summu. Pirmie divi skaitļi vienmēr ir 0 un 1. Fibonači sēriju var iegūt jebkurā programmēšanas valodā, bet šeit mēs pielietosim avota kodu C++ programmēšanas valodā. Matemātikā Fibonači secība tiek izskaidrota ar rekursijas relāciju ar parauga formulu.

Fn = Fn-1 + Fn-2

Šajā apmācībā būs ietvertas dažādas metodoloģijas, lai izveidotu Fibonači skaitļu secību.







1. piemērs



Šajā piemērā, pirmkārt, ievades un izvades straumju bibliotēka tiek izmantota, lai iespējotu cin un cout straumes, kā arī tiek veicināta lietotāja iesaistīšanās, izmantojot šo bibliotēku. Galvenās programmas iekšpusē mēs ņemsim divus veselu skaitļu tipa mainīgos un deklarēsim tiem nulles vērtību. Tiek izmantots arī cits nākamā termiņa mainīgais, kas tiek inicializēts kā nulle un ievietots vēlākai lietošanai. Mēs lūgsim lietotājam Fibonači sērijā ievadīt viņam nepieciešamo numuru. Citiem vārdiem sakot, rindu skaits, kas tiek parādīts kā izvade, ir atkarīgs no lietotāja ievades. Konkrētais numurs, ko lietotājs ievadīs, šajās rindās būs atbilde.







Mums ir nepieciešama cilpa “for”, lai atkārtotu līdz konkrētajam skaitlim, ko lietotājs ievada, lai aprēķinātu secību. Tas ir sava veida ierobežojums ar vairākām rindām. Lai pārbaudītu numuru, tiek izmantots paziņojums if; ja tas ir viens, parādiet to tādu, kāds tas ir, bez izmaiņām. Līdzīgi tiks parādīts arī otrais cipars. Fibonači secībā tiek parādīti pirmie divi skaitļi. Lai turpinātu, esam izmantojuši turpinājuma paziņojumu. Lai tālāk aprēķinātu sēriju, mēs pievienosim abas vērtības. Un šis būs sērijas trešais numurs. Pēc tam, kad sāksies mijmaiņas process, pirmajam mainīgajam tiks piešķirta otrā mainīgā vērtība, bet otrajam mainīgajam būs trešā vērtība, kas saglabāta nākamā termiņa mainīgajā.

Nākamais termins = t1 + t2;



T1 = t2;

T2 =nākamais termins;

Tagad katra vērtība tiek parādīta atdalīta ar komatiem. Izpildiet kodu, izmantojot kompilatoru. “-o” tiek izmantots, lai saglabātu ievades failā esošā koda izvadi.

$ g++ -O fib fib.c
$ . / fib

Var redzēt, ka, programmai izpildot, lietotājs lūgs ievadīt viņa ievadīto skaitli 7, tad rezultāts būs 7 rindiņas neatkarīgi no tā, kurā brīdī Fibonači sērija ir sasniegusi 7. punktu.

2. piemērs

Šajā piemērā būs ietverts Fibonači sērijas aprēķins, ierobežojot nākamā termiņa vērtību. Tas nozīmē, ka Fibonacci sēriju var pielāgot, nodrošinot noteiktu skaitu, ciktāl vēlaties. Atšķirībā no iepriekšējā piemēra rezultāts ir atkarīgs nevis no rindu skaita, bet gan no skaitļa norādīto sēriju skaita. Mēs sāksim no galvenās programmas, mainīgie ir vienādi, un arī lietotāja iesaistīšanas pieeja ir tāda pati. Tātad divi pirmie mainīgie sākumā tiek inicializēti kā nulle, bet nākamā termiņa mainīgais tiek pasludināts par nulli. Pēc tam lietotājs ievadīs numuru. Pēc tam tiek parādīti pirmie divi termini, kas vienmēr ir 0 un 1.

Nākamā termina vērtībai tiks piešķirta vērtība, kas iegūta, saskaitot skaitļus, kas atrodas pirmajos divos mainīgajos. Šeit tiek izmantota kamēr cilpa, lai piemērotu nosacījumu par sērijas izveidi, līdz nākamā termiņa mainīgā vērtība ir vienāda ar lietotāja norādīto skaitli vai mazāka par to.

Kamēr (nākamais termins <= n)

Šajā while cilpā loģika tiks lietota, apmainot skaitļus atpakaļ virzienā. Nākamā termiņa mainīgais atkal pievienos mainīgo vērtības.

Nākamais termins = t1 + t2;

Tagad saglabājiet failu un kompilējiet to, lai terminālī izpildītu kodu.

Kad palaižat kodu, sistēma no jums pieprasīs skaitli, kam jābūt pozitīvam skaitlim. Tad jūs redzēsiet, ka aprēķinos tiek parādīta skaitļu sērija līdz 55. ciparam.

3. piemērs

Šajā avota kodā, ko mēs pieminēsim, būs cita Fibonači sērijas aprēķināšanas metode. Līdz šim mēs esam aprēķinājuši sērijas galvenajā programmā. Šajā piemērā tiek izmantota atsevišķa funkcija, lai aprēķinātu šo skaitļu secību. Funkcijas iekšpusē tiek veikts rekursīvs izsaukums, lai turpinātu procesu. Tādējādi tas ir arī rekursijas piemērs. Funkcija ņems skaitli parametrā, līdz kuram ir jāaprēķina sērija. Šis numurs tiek nosūtīts no galvenās programmas. Paziņojums if tiek izmantots, lai pārbaudītu, vai skaitlis ir mazāks vai vienāds ar 1, pēc tam atgrieziet pašu skaitli, jo mums ir nepieciešami vismaz divi skaitļi, lai aprēķinātu sēriju. Otrajā gadījumā, kad nosacījums kļūst nepatiess un skaitlis ir lielāks par 1, aprēķiniet sēriju, atkārtoti izmantojot rekursīvu pašas funkcijas izsaukumu.

Fib (n-1) + fib (n-2);

Tas parāda, ka pirmajā daļā viens skaitlis pirms kopējā skaitļa tiek nodots funkcijai, šī vērtība tiks atņemta no skaitļa, kas iegūts no šūnas, kurā kā parametrs ir divi skaitļi pirms kopējā skaitļa.

Tagad galvenajā programmā numurs tiek piešķirts mainīgajam, un tiek veikts pirmais funkcijas izsaukums, lai numuru nodotu funkcijai. Tagad terminālī izpildiet faila avota kodu, lai iegūtu atbildi. Šeit redzēsiet, ka atbilde ir '13', jo ievadītais skaitlis bija 7, tātad sērija būs 0+1+1+2+3+5+8+13.

4. piemērs

Šis piemērs ietver OOP (objektorientētās programmēšanas) pieeju Fibonači sērijas aprēķināšanai. Tiek izveidota klase GFG. Tās publiskajā daļā tiek izveidota funkcija, lai būtu masīvs, kurā tiks saglabāta Fibonači sērija.

F [n +2];

Šeit n ir skaitlis, kas sākumā deklarēts kā 0.

F[0] = 0;

F[1] = 1;

Skaitļi indeksā 0 un 1 tiek deklarēti kā 0 un 1.

Pēc tam tiek izmantota “for” cilpa, kurā tiks aprēķināta Fibonači sērija. Divi iepriekšējie numuri tiek pievienoti sērijai un tiks saglabāti.

F[i] = f[i-1] + f[i-2];

Pēc tam tiek atgriezts konkrētais skaitlis noteiktā indeksā.

Funkcijas izsaukums tiek veikts, izmantojot objektu.

g.fib(n);

Tagad izpildiet kodu, un jūs redzēsiet, ka, tā kā skaitlis ir 11, secība būs līdz 11. ciparam.

Secinājums

Šis raksts “Fibonači secība C++” ir dažādu pieeju sajaukums, ko izmanto, lai izveidotu secību, pievienojot divus iepriekšējos skaitļus. Izmantojot vienkāršu mijmaiņas paņēmienu, papildus rekursijas metodei un ar masīvu palīdzību mēs varam ģenerēt šos skaitļus virknē. Lai izveidotu Fibonači sēriju, skaitļiem ieteicams norādīt veselu skaitļu datu tipu. Mēs varam aprēķināt sēriju, piemērojot ierobežojumus rindu skaitam un secības skaitam.