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

фибоначчи от и до. - C++

Восстановить пароль Регистрация
 
ghjas
2 / 2 / 0
Регистрация: 19.11.2009
Сообщений: 66
16.10.2011, 16:32     фибоначчи от и до. #1
Распечатать все чиса Фибоначчи, которые попадают в промежуток,
заданный двумя введенными с клавиатуры натуральными числами.

должно выводиться но не хочет
может и идея не та? помогите.

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <conio.h>
using namespace std;
void main()
{ int count=0,f1=0,f2=0,f3=1;
int m,n;
cin>>n>>m;
   while((f1<=m) && (f1>=n))
  {    f1=f2+f3; f2=f3; f3=f1;cout<<f1;}
    
_getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2011, 16:32     фибоначчи от и до.
Посмотрите здесь:

C++ Фибоначчи
Фибоначчи C++
C++ Фибоначчи
Фибоначчи C++
C++ Фибоначчи
C++ Набрать с чисел Фибоначчи в интервале от 1 до 100, только просто числа, а также их порядковые номера в ряду Фибоначчи
C++ Числа Фибоначчи
фибоначчи C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ybrjk
26 / 26 / 2
Регистрация: 06.11.2010
Сообщений: 77
16.10.2011, 16:50     фибоначчи от и до. #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
int GenerateFibonachchi(int i)
{
     if(i==0) return 1;
     if(i==1) return 1;
     if(i<0) return 0;
     return GenerateFibonachchi(i-2)+GenerateFibonachchi(i-1);
}
int main()
{
    
    int m,n;
    cin>>n>>m;
    int i=n;
    while(GenerateFibonachchi(i)<m)
    {
        cout << GenerateFibonachchi(i)<<endl;
        i++;
    }
    system("pause");
}
Попробуй так
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
16.10.2011, 17:12     фибоначчи от и до. #3
Слишком много лишних вычислений, да еще и древовидная рекурсия. Вот объект-генератор чисел Фибоначчи, лежащих в данном отрезке (без проверки корректности границ отрезка):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
 
class fib
{
public:
    fib(size_t, size_t);
    // генерация следующего числа
    // вернет 0 при выходе за границы диапазона
    size_t operator () ();
    
private:
    size_t a, b;
    size_t min, max;
};
 
fib::fib(size_t mi, size_t ma)
    : a(0), b(1), min(mi), max(ma)
{
    while(b < min)
    {
    size_t last = b;
    b += a;
    a = last;
    }
}
 
size_t fib::operator () ()
{
    if(b > max)
    return 0;
 
    size_t last = b;
    b += a;
    a = last;
 
    return a;
}
 
int main()
{
    fib fibs(5, 144);       // числа Фибоначчи из отрезка [5;144];
 
    size_t f;
 
    while((f = fibs()) != 0)
    std::cout << f << std::endl;
 
    
    return 0;
}
Yandex
Объявления
16.10.2011, 17:12     фибоначчи от и до.
Ответ Создать тему
Опции темы

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