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

Фибонначи, определить соседние члены - C++

Восстановить пароль Регистрация
 
IIIa66uMEM6eP
заставил Бендера
 Аватар для IIIa66uMEM6eP
432 / 288 / 10
Регистрация: 05.12.2010
Сообщений: 1,642
Записей в блоге: 6
23.03.2011, 21:13     Фибонначи, определить соседние члены #1
ввод двух чисел, нужно определить. являются ли они соседними членами Фибоначчи.
напомню, Фибоначчи определяется F1=F2=1; F(i-1)+F(i-2); i > 2;
подскажите как задать условие, что они соседние..
PS: использовать только циклы, без указателей, функций, строк и прочего.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mayonez
 Аватар для Mayonez
379 / 271 / 20
Регистрация: 26.12.2009
Сообщений: 875
23.03.2011, 21:22     Фибонначи, определить соседние члены #2
массив использовать тоже нельзя?
IIIa66uMEM6eP
заставил Бендера
 Аватар для IIIa66uMEM6eP
432 / 288 / 10
Регистрация: 05.12.2010
Сообщений: 1,642
Записей в блоге: 6
23.03.2011, 21:24  [ТС]     Фибонначи, определить соседние члены #3
Mayonez, к сожалению, тема лабы ветвление и циклы
Mayonez
 Аватар для Mayonez
379 / 271 / 20
Регистрация: 26.12.2009
Сообщений: 875
23.03.2011, 21:44     Фибонначи, определить соседние члены #4
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
#include <iostream>
 
const int max = 40;
 
int main()
{
    std::locale::global(std::locale(""));
    int a, b;
    std::cout << "Введите два числа:" <<std::endl;
    std::cin >> a >> b;
    int f1 = 0;
    int f2 = 1;
    int i = 0;
    bool y = 0;
    while (i < max)
    {
        int f3 = f1 + f2;
        f1 = f2;
        f2 = f3;
        if (a == f3 || b == f3)
        {
            if (a == f1 + f2 || b == f1 + f2)
                y = 1;
        }
        i++;
    }
    std::cout << "Эти числа" << (y ? " " : " НЕ ") 
              << "являються соседними в последовательности Фибоначчи!"
              << std::endl;
    return 0;
}
так как последовательность Фибоначчи бесконечна, задана некая константа мах, которая определяет, когда нужно прекратить перебор.

Добавлено через 8 минут
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
#include <iostream>
 
const int max = 24157817 + 1; //какой-то там по счету член + 1
 
int main()
{
    std::locale::global(std::locale(""));
    int a, b;
    std::cout << "Введите два числа:" <<std::endl;
    std::cin >> a >> b;
    int f1 = 0;
    int f2 = 1;
    int i = 0;
    bool y = 0;
    while (i < max)
    {
        if ( (a == f1 && b == f2) || (b == f1 && a == f2) )
        {
            y = 1;
            break;
        }
        int change = f2;
        f2 += f1;
        f1 = change;
        i++;
    }
    std::cout << "Эти числа" << (y ? " " : " НЕ ") 
              << "являються соседними в последовательности Фибоначчи!"
              << std::endl;
    return 0;
}
Изменил, а то на 1 1 выдавало НЕТ

Добавлено через 2 минуты
37
IIIa66uMEM6eP
заставил Бендера
 Аватар для IIIa66uMEM6eP
432 / 288 / 10
Регистрация: 05.12.2010
Сообщений: 1,642
Записей в блоге: 6
23.03.2011, 22:33  [ТС]     Фибонначи, определить соседние члены #5
Mayonez, да да, я заметил, поправил, там еще i должно быть больше 2, и ф1 и ф2 установлены в 1, так как каждый последующий член, это новый + второй.
спс за бдительность)

Добавлено через 1 минуту
Mayonez, как же вы эти вызовы используете, это сколько лишнего кода... для русского языка.
Yandex
Объявления
23.03.2011, 22:33     Фибонначи, определить соседние члены
Ответ Создать тему
Опции темы

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