Форум программистов, компьютерный форум CyberForum.ru

Проверка ряда Фибонначи с испльзованием рекурсии. - C++

Восстановить пароль Регистрация
 
to
19 / 19 / 0
Регистрация: 28.10.2010
Сообщений: 296
28.10.2010, 12:17     Проверка ряда Фибонначи с испльзованием рекурсии. #1
Помогите написать программу которая будет проверять введенные с клавиатруы числа на пренадлежность их к ряду Фибонначи использую рекурсию. Или хоть как-то намекните как это делать. Заранее благодарен!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2010, 12:17     Проверка ряда Фибонначи с испльзованием рекурсии.
Посмотрите здесь:

C++ Фибонначи
Фибонначи 2 C++
число Фибонначи C++
Фибонначи, определить соседние члены C++
Сумма ряда. Число повторений цикла. Нужна проверка и помощь C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dexter
 Аватар для Dexter
284 / 144 / 16
Регистрация: 13.10.2009
Сообщений: 164
28.10.2010, 12:25     Проверка ряда Фибонначи с испльзованием рекурсии. #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
int Check(int n,int a,int b)
{
    if(a==n)return 1;
    if(b>n)return 0;
    return Check(n,a+b,a);
}
int main() 
{ 
  int n;
  cout<<"Enter number. N=";
  cin>>n;
  if(Check(n,1,1))
      cout<<"Fibonachi"<<endl;
  else
      cout<<"Not fibonachi"<<endl;
  system("pause");
}
to
19 / 19 / 0
Регистрация: 28.10.2010
Сообщений: 296
28.10.2010, 12:32  [ТС]     Проверка ряда Фибонначи с испльзованием рекурсии. #3
Спасибо! а можно это как-то сделать без выхода с программы, тоесть что бы вводить не одно число а несколько?
А можете чуть обьяснить по программе??
Мне не понятно какое значение у переменных а и b. обьясните если не трудно)
Dexter
 Аватар для Dexter
284 / 144 / 16
Регистрация: 13.10.2009
Сообщений: 164
28.10.2010, 12:48     Проверка ряда Фибонначи с испльзованием рекурсии. #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
int Check(int n,int a,int b)
{
        if(a==n)return 1;
        if(b>n)return 0;
        return Check(n,a+b,a);
}
int main() 
{ 
  int n;
  do{
  cout<<"Enter number. N=";
  cin>>n;
  if(Check(n,1,1))
          cout<<"Fibonachi"<<endl;
  else
          cout<<"Not fibonachi"<<endl;
  }while(n);
  system("pause");
}
Выход - ввод нуля.
Числа a и b - два текущих числа фибоначи. В начале вводятся первые два из ряда, это единицы.
На шаге рекурсии - сравниваем, равно ли большее из двух нашему числу, если да, то это число принадлежит ряду. Если меньшее число из последовательности больше искомого, значит мы уже проскочили и соответствия не было, то есть число не является числом фибоначи. Если же ни то ни то, то увеличиваем шаг рекурсии и берем следующие два числа ряда фибоначи.

P.S. кнопка спасибо есть под каждым сообщением.

 Комментарий модератора 
А у меня под каждым сообщением есть кнопка, нажав которую, я могу выдать вам карточку за нарушение правил п. 3.9.
Перечитайте правила
Yandex
Объявления
28.10.2010, 12:48     Проверка ряда Фибонначи с испльзованием рекурсии.
Ответ Создать тему
Опции темы

Текущее время: 21:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru