Вопрос задан 22.06.2023 в 17:58. Предмет Информатика. Спрашивает Степанов Роман.

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

Фибоначчи ,если таких нет сообщить об этом.​
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Мищенко Влад.

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

#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";

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для нахождения элементов массива, которые являются числами Фибоначчи, вы можете использовать следующий C++ код.

cpp
#include <iostream> #include <vector> #include <cmath> bool isPerfectSquare(int x) { int s = sqrt(x); return (s * s == x); } bool isFibonacci(int n) { return isPerfectSquare(5 * n * n + 4) || isPerfectSquare(5 * n * n - 4); } int main() { int n; std::cout << "Введите размер массива: "; std::cin >> n; std::vector<int> arr(n); std::cout << "Введите элементы массива: "; for (int i = 0; i < n; i++) { std::cin >> arr[i]; } bool foundFibonacci = false; std::cout << "Числа Фибоначчи в массиве: "; for (int i = 0; i < n; i++) { if (isFibonacci(arr[i])) { std::cout << arr[i] << " "; foundFibonacci = true; } } if (!foundFibonacci) { std::cout << "Нет чисел Фибоначчи в массиве." << std::endl; } return 0; }

Этот код определяет функцию isFibonacci, которая проверяет, является ли переданное число числом Фибоначчи. Затем он запрашивает размер массива и его элементы от пользователя и выводит числа Фибоначчи, найденные в массиве, если такие есть. Если в массиве нет чисел Фибоначчи, он сообщает об этом.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос