Se consideră şirul Fibonacci, definit astfel: f1=1, f2=1, respectiv fn=fn-1+fn-2, dacă n>2.
Cerinţa
Se dă un şir cu n elemente, numere naturale. Să se afişeze elementele şirului care sunt termeni ai şirului lui Fibonacci.
Se va defini şi apela o funcţie fibo care verifică dacă un număr natural, transmis ca parametru, face parte din şirul lui Fibonacci.
Date de intrare
Pe prima linie a fişierului fiboverif1.in se află numărul n, iar pe a doua linie n numere naturale.
Date de ieşire
Pe prima linie a fişierului fiboverif1.out se vor afla elementele şirului dat care sunt termeni ai şirului lui Fibonacci, separaţi prin exact un spaţiu.
Răspunsuri la întrebare
Răspuns de
8
#include <fstream>
using namespace std;
int n, i, x, k;
int fibo (int nr)
{
int a, b, c, r;
bool ok = false;
a = 1;
b = 1;
c = a + b;
while(c < nr)
{
a = b;
b = c;
c = a + b;
}
if(c == nr) ok = true;
else if(nr == 1) ok = true;
if(ok) r = 1;
else r= 0;
return r;
}
int main()
{
ifstream f("fiboverif1.in");
ofstream g("fiboverif1.out");
f >> n;
for(i = 1; i <= n; i ++)
{
f >> x;
k = fibo(x);
if(k == 1) g << x << " ";
}
return 0;
}
using namespace std;
int n, i, x, k;
int fibo (int nr)
{
int a, b, c, r;
bool ok = false;
a = 1;
b = 1;
c = a + b;
while(c < nr)
{
a = b;
b = c;
c = a + b;
}
if(c == nr) ok = true;
else if(nr == 1) ok = true;
if(ok) r = 1;
else r= 0;
return r;
}
int main()
{
ifstream f("fiboverif1.in");
ofstream g("fiboverif1.out");
f >> n;
for(i = 1; i <= n; i ++)
{
f >> x;
k = fibo(x);
if(k == 1) g << x << " ";
}
return 0;
}
flaviamarina10:
Mulțumesc mult :3
Alte întrebări interesante
Geografie,
8 ani în urmă
Matematică,
8 ani în urmă
Ed. tehnologică,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă