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

Фибоначчи - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Деревья http://www.cyberforum.ru/cpp-beginners/thread382899.html
есть два бинарных дерева, надо сравнить их корни, #include<iostream> #include<stdlib.h> #include<conio.h> #include<time.h> using namespace std; struct Node {
C++ перевести с С на паскаль Переведете пожалуйста код с С++ на паскаль. Очень нужно! Программа должна удалять лишние элементы в последовательности, так, чтобы после их удаления образовалась максимальная последовательность.... http://www.cyberforum.ru/cpp-beginners/thread382898.html
C++ подскажите как выполнить метод в потоке
class T1 { public : void metod1(); void metod2(); } void T1::metod1() { std::cout<<"metod1"<<endl; // пожскажите пожайлуста как в этом...
Как правильно прикрепить файл ".h" к проекту? C++
Хочу перекинуть структуры в один файл, функции в другой, а основная программа останется в cpp. Для этого добавляю к проекту файлы ".h" и в .cpp пишу: #include "Structure.h" #include "Functions.h"...
C++ Одномерные массивы. http://www.cyberforum.ru/cpp-beginners/thread382864.html
Большая просьба помочь мне в решении двух задач! Буду Вам очень признателен, товарищи! задачи выглядят следующим образом: 1. Сформировать новый массив из элементов массива М(25), встречающихся в...
C++ Блок-схема Привет, можете помочь сделать блок-схему алгоритма этой проги? заранее огромное спасибо)) #include <math.h> #include <stdio.h> int main() { double a,b,x,c,F,Xn,Xk,dX; printf("Enter Xn, Xk,... подробнее

Показать сообщение отдельно
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
13.11.2011, 15:34
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
#include <iostream>
#include <cstring>
#include <ctime>
 
long long f0, f1;
 
long long fib(int n)
{
    if(n == 0)
    {
        ++f0;
        return 0;
    }
    else if(n == 1)
    {
        ++f1;
        return 1;
    }
    else return fib(n - 2) + fib(n - 1);
}
    
int main()
{
    std::cout << fib(40) << ' ';
    std::cout << clock() / static_cast<double>(CLOCKS_PER_SEC) << std::endl;
 
    clock_t start = clock();
    long long arr[3];
    arr[0] = 0;
    arr[1] = arr[2] = 1;
    for(int i = 3; i <= 40; ++i)
    {
        arr[0] = arr[1];
        arr[1] = arr[2];
        arr[2] = arr[1] + arr[0];
    }
    std::cout << arr[2] << ' ' << (clock() - start) / static_cast<double>(CLOCKS_PER_SEC) << std::endl;
    return 0;
}
Код
soon@coming:~/src$ g++ tmp.cpp -o tmp
soon@coming:~/src$ ./tmp
102334155 6.63
102334155 0
soon@coming:~/src$
f(1) будет в arr[2], f(0) будет в arr[1].
Дальше 6 секунд ждать не захотел =)

Добавлено через 1 минуту
Но! Нужно учесть n = 0, 1, 2. Можно изначально заполнить массив нулями, тогда будет на 3 итерации больше, можно добавить if/else на n.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru