Se consideră şirul Fibonacci, definit astfel: f1=1 , f2=1 , fn=fn-1+fn-2 , dacă n>2.
Cerinţa
Se dau n numere naturale. Să se verifice despre fiecare dacă este termen al şirului lui Fibonacci.
Date de intrare
Programul citește de la tastatură numărul n şi apoi n numere naturale.
Date de ieşire
Programul afișează pe câte o linie a ecranului, pentru fiecare număr, mesajul DA, dacă acel număr este termen al şirului lui Fibonacci, respectiv NU în caz contrar.
Restricţii şi precizări
1 ≤ n ≤ 10
numerele care se verifică au cel mult 9 cifre
Exemplu
Date de intrare
8
13 1 8 24 21 55 47 8
Date de ieșire
DA
DA
DA
NU
DA
DA
NU
DA
si am facut ceva, dar la afisare nu stiu ce conditie trebuie pusa
#include
using namespace std;
short n,i;
int f1,f2,x;
int main()
{
cin>>n;f1=1;f2=1;
for(i=1;i<=n;i++)
{cin>>x;
while(x
{f1=f2;
f2=x;
x=f1+f2;}
if(x==n)
cout<<"DA"<
else if(x>n)
cout<<"NU"<
return 0;
}
Răspunsuri la întrebare
Răspuns de
12
#include <iostream>
#include <cassert>
using namespace std;
int main(){
int n, x, a=1, b=1, c;
cin >> n;
for( ; n ; --n){
cin >> x;
if(x==1)
cout << "DA\n";
else{
a=1, b=1;
do
{
c = a+b;
a = b;
b = c;
}
while(c<x);
if(c==x)
cout << "DA\n";
else
cout << "NU\n";
}
}
return 0;
}
Elena1elle:
fara biblioteca cassert nu se poate?
Alte întrebări interesante
Matematică,
8 ani în urmă
Geografie,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Geografie,
9 ani în urmă
Matematică,
9 ani în urmă