C++
дано число n и массив a1,a2,...an.Найти те элементы массива , которые являются числами Фибоначчи ,если таких нет сообщить об этом.​


stglupa: до скольки a_i ?
LiliDav02: до n ,думаю n можно взять const, например 6
stglupa: не, я про сами значения элементов
stglupa: их количество(n) и они сами, ясен пень, задаются с клавиатуры
stglupa: мне просто ограничения нужны, типа какое максимальное значение могут принимать эти элементы
LiliDav02: в задании ничего нет,сама не понимаю

Ответы

Ответ дал: stglupa
1

Предположим, что все элементы массива по модулю не превышают одного миллиона, тогда код будет иметь следующую структуру :

#include <iostream>

#include <set>

using namespace std;

signed main(){

   set<int> fibs;

   fibs.insert(1);

   fibs.insert(2);

   while(*next(fibs.begin(),fibs.size() - 1) + *next(fibs.begin(), fibs.size() - 2) <= int(1e6))

       fibs.insert(*next(fibs.begin(),fibs.size() - 1) + *next(fibs.begin(), fibs.size() - 2));

   int n;

   cin >> n;

   int a[n];

   bool f = false;

   for(int i = 0; i < n; i++){

       cin >> a[i];

       if(fibs.find(a[i]) != fibs.end()){

           cout << a[i] << " ";

           f = true;

       }

   }

   if(!f)

       cout << "There are no fibonacci elements in current array";

}


LiliDav02: Спасибо огромное
stglupa: обращайся :)
Вас заинтересует