Informatică, întrebare adresată de flaviamarina10, 9 ani în urmă

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 express
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;
}


flaviamarina10: Mulțumesc mult :3
Alte întrebări interesante