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

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

Показать ответ
Ответ:
ксю825
ксю825
06.10.2020 03:48

#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" ,когда введеное число нельзя представить в виде суммы двух чисел фиб.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота