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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Sabzali
Сообщений: n/a
#1

Помогите решать задачку в C++ - C++

25.11.2011, 13:11. Просмотров 481. Ответов 4
Метки нет (Все метки)

Пожалуйста, помогите решать задачку.

Разработать алгоритм и программу решений следующих задач:
Описать функцию Fib(N) целого типа, вычисляющую N-й элемент последовательности чисел Фибоначчи Fk, которая описывается следующими формулами:
F1=1, F2=1, Fk=Fk-2+Fk-1; k =3,4.
Используя функцию Fib, найти пять чисел Фибоначчи с данными номерами N1, N2,….,N5
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2011, 13:11     Помогите решать задачку в C++
Посмотрите здесь:
C++ ПОМОГИТЕ отредактировать задачку!
Помогите решить задачку по Дейтлу C++
C++ Помогите решить задачку (БД и CListCtrl)...
Помогите решать задачи C++
C++ Помогите кто может заделать задачку с бинарным деревом...
C++ Помогите придумать несложную задачку по теме "Шаблоны классов"
Задайте задачку) C++
Решить задачку C++
C++ посоветуйте задачку )
Подкиньте задачку C++
Взгляните на задачку С++ C++
C++ Подправить задачку.

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
Эксперт C
15634 / 9976 / 1499
Регистрация: 24.12.2010
Сообщений: 18,722
25.11.2011, 13:25     Помогите решать задачку в C++ #2
C
1
2
3
4
long Fib(int N)
{ if (N<3) return 1;
   else return Fib(N-2) + Fib(N-1);
}
Thinker
Эксперт C++
4221 / 2195 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.11.2011, 13:38     Помогите решать задачку в C++ #3
Или в одну строчку
C++
1
2
3
4
long Fib(int n)
{
   return n < 3 ? 1 : Fib(n-2) + Fib(n-1);
}
Хотя здесь много повторных вызовов будет
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
25.11.2011, 13:50     Помогите решать задачку в C++ #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
long fib(int n)
{
    static long n1 = 0L;
    static long n2 = 1L;
    static int number = 0;
    int temp;
 
    if (n < number && number - n < n) {
            for ( ; number != n; number--) {
                temp = n2;
                n2 = n1;
                n1 = temp - n1;
            }
            return n1;
    } else if (number == n) {
        return n1;
    } else {
         if (number - n >= n) {
             n1 = 0L;
             n2 = 1L;
             number = 0;
         }
        for ( ; number+1 != n; number++) {
            temp = n2;
            n2 += n1;
            n1 = temp;
        }
        return n2;
    }
}
Sabzali
Сообщений: n/a
25.11.2011, 21:34     Помогите решать задачку в C++ #5
очень хорошо... спасибо большое.... also Я хотел бы узнать.. как строить схема алгоритма по этой задачки...
Yandex
Объявления
25.11.2011, 21:34     Помогите решать задачку в C++
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru