
Программа на C++ или Pascal, которая выводит на экран два числа из чисел Фибоначчи из которых
получилось введённое число. Например: ввод: 8 вывод: 3 5 ввод: 144 вывод: 55 89

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

#include <iostream>
using namespace std;
int p = 0;
int f(int p)
{
if (p <= 0)
return 0;
if (p == 1)
return 1;
return f(p - 2) + f(p - 1);
}
int main()
{
int a;
cin >> a;
int mas[a];
for (; f(p) <= a; p++)
mas[p] = f(p);
for (int p = ::p - 1; p >= 0; p--)
{
int prob = a - mas[p];
for (int q = 0; q < p; q++)
if (prob == mas[q])
{
cout << "\n"
<< mas[p] << " " << prob;
exit(0);
};
};
cout << "condition impossible";
}
единственный минус программы - наибольшее число фибоначчи для нее приоритетнее : при вводе 8 , она выведет 8 0 , но так как и 8, и 0 являются числами фиб. , то условие выполняется верно .
программа выводит "condition impossible" ,когда введеное число нельзя представить в виде суммы двух чисел фиб.



Для решения данной задачи вам потребуется написать программу на C++ или Pascal, которая вычисляет числа Фибоначчи и затем находит два числа Фибоначчи, сумма которых равна введенному числу. Вот пример программы на C++, которая выполняет это:
cpp#include <iostream>
using namespace std;
void findFibonacciPair(int n) {
int prev = 0;
int curr = 1;
while (curr < n) {
int temp = curr;
curr += prev;
prev = temp;
}
if (curr == n) {
cout << prev << " " << curr << endl;
} else {
cout << "Числа Фибоначчи, сумма которых равна " << n << ", не найдены." << endl;
}
}
int main() {
int num;
cout << "Введите число: ";
cin >> num;
findFibonacciPair(num);
return 0;
}
Программа запрашивает у пользователя число, затем находит два числа Фибоначчи, сумма которых равна введенному числу, и выводит их на экран. Если таких чисел не найдено, программа сообщит об этом.
Пример работы программы:
Введите число: 8 3 5
Также вы можете использовать аналогичный алгоритм и реализовать программу на языке Pascal.


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







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







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili