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

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

Восстановить пароль Регистрация
 
rivares1853
0 / 0 / 0
Регистрация: 30.03.2014
Сообщений: 68
30.03.2014, 14:15     Числа Фибоначчи без использования рекурсии и массивов #1
C++
1
2
3
4
5
6
7
8
9
10
int a, b=0, c=1;
cout<<"Введите число Фибоначчи: "<<endl;
cin>>a; 
for(int i=2;i<=(a-3);i++)
{
        a=b+c;
        b=c;
        c=a+b;
}
cout<<"Число Фибоначчи равно = "<<c<<endl;
Помогите с Нахождением числа Фибоначчи. Задача: без использования рекурсии и массивов!!!Помогите!!!
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Anton_Kretov
 Аватар для Anton_Kretov
89 / 51 / 7
Регистрация: 26.06.2013
Сообщений: 179
30.03.2014, 14:19     Числа Фибоначчи без использования рекурсии и массивов #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <iostream>
 
using namespace std;
 
int main()
{
    int a ,b, k;
    a=0;
    b=1;
    cin >> k;
    while (k<=0)
    {
        cout << "ERROR! Enter the number greater than zero: ";
        cin >> k;
    }
    while (k!=0)
    {
        a=a+b;
        b=a-b;
        k=k-1;
        cout << a << " ";
    }
    return 0;
}
rivares1853
0 / 0 / 0
Регистрация: 30.03.2014
Сообщений: 68
30.03.2014, 22:23  [ТС]     Числа Фибоначчи без использования рекурсии и массивов #3
Спасибо!!!!
Как вы до этого догадались?
ZaMaZaN4iK
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
163 / 163 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
31.03.2014, 01:40     Числа Фибоначчи без использования рекурсии и массивов #4
вот ещё как вариант.Нахождение n-ого числа фибоначчи за O(logN).Думаю пойдет=)
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
#include <iostream>
 
using namespace std;
 
int fib(int n)
{
    int a=1,b=1,
        c=1,d=0,
        rc=0,rd=1,
        ta,tb,tc,td;
    while(n)
    {
        if(n & 1)
        {
            tc=rc*a+rd*c;
            td=rc*b+rd*d;
            rc=tc;rd=td;
        }
        ta=a*a+b*c;
        tb=a*b+b*d;
        tc=c*a+d*c;
        td=c*b+d*d;
        a=ta;b=tb;c=tc;d=td;
        n>>=1;
    }
    return rc;
}
 
int main()
{
    int n;
    cin>>n;
    cout<<fib(n)<<endl;
    system("pause");
    return 0;
}
Yandex
Объявления
31.03.2014, 01:40     Числа Фибоначчи без использования рекурсии и массивов
Ответ Создать тему
Опции темы

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