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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Массив http://www.cyberforum.ru/cpp-beginners/thread391494.html
6) Дан целочисленный массив (размер и элементы массива вводятся пользователем). Упорядочить массив тремя способами: в порядке возрастания значений элементов; в порядке убывания суммы цифр элементов;...
C++ Создайте класс Mostr 1. Создайте класс Mostr, все поля должны быть private, методы public. 2. Создайте несколько объектов с использованием всех конструкторов. В объекте, созданным конструктором по умолчанию,... http://www.cyberforum.ru/cpp-beginners/thread391471.html
C++ (подскажите в чем логическая ошибка в этом упражнении)
Упражнение 2.4 (подскажите в чем логическая ошибка в этом упражнении) Что делает следующий фрагмент кода? В чем состоит логическая ошибка? (Отметим, что операция взятия индекса () правильно...
C++ Сортировка двумернного массива
Подскажите, пожалуйста, как правильно поставить условие в цикле, чтобы после ввода номер строки, компилятор проверял упорядочена ли выбранная строка, двумерного массива, по возрастанию/убыванию/не...
C++ Дано натуральное число. Заменить любую из его цифр так, чтобы получилось максимальное совершенное число. http://www.cyberforum.ru/cpp-beginners/thread391440.html
Дано натуральное число N. Если это сложно, заменить любую из его цифр (только одну) так, чтобы получилось максимальное совершенное число.
C++ Ханойская башня Здравствуйте! есть рабочий код, из Википедии #include <iostream> using namespace std; void hanoi_towers(int start, int dest, int buff,int count) { if (count != 0)//Выход из... подробнее

Показать сообщение отдельно
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
25.11.2011, 13:50
минимизировал количество вычислений при повторных вызовах:
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;
    }
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru