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

ряд фибоначчи - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Что ета строчка значит? http://www.cyberforum.ru/cpp-beginners/thread186435.html
#pragma argsused #include<iostream.h> using namespace std; int main(int argc, char* argv) { const int n=10; int k=0; float m,s=0; cout<<"Array:\n"; for(int i=0;i<n;i++)
C++ Как правильно объявить vector в классе? как правильно объявить вектор? #include <vector> #include <algorithm> using namespace std; extern int map; vector<pair<int, int> > wave; ////////////////////////////////////////////////////////////////////// http://www.cyberforum.ru/cpp-beginners/thread186422.html
C++ Наследование
Вопрос про главный смысл наследования: Если в классе А создаешь функцию то нужно ли в классе В ее снова писать, вот пример: class A: { A(); virtual void print(); ~A();
C++ Ввод кориллической строки в консоли
Доброго времени суток. Интересует следующий момент: можно ли настроить консоль таким образом чтобы при вводе строки русским шрифтом эта самая строка принималась и адекватно выводилась? (а то выводится черте что :wall:) А еще до мня дошли слухи (заранее прошу прощения если буду нести откровенную ересь :)) что можно создать в проекте текстовый файл и использовать его для хранения данных,...
C++ ОБРАБОТКА ПОСЛЕДОВАТЕЛЬНОСТИ СИМВОЛОВ http://www.cyberforum.ru/cpp-beginners/thread186394.html
В тексте первый символ каждого слова - цифра, указывающая длину этого слова. Проверить правильность указания длины слов. На экран вывести заданные длины слов и вычисленные
C++ Матрица Здравствуйте! задание такое: Найти минимальный элемент матрицы, и если он парный и парная строка его расположения - отсортировать 3 столбец матрицы. Наверное матрицы 4х4 вполне достаточно будет неважен способ задания с клавиатуры или рандомно. Спасибо.:-[ подробнее

Показать сообщение отдельно
LAans
1 / 1 / 0
Регистрация: 29.04.2010
Сообщений: 46
05.11.2010, 18:09  [ТС]     ряд фибоначчи
Цитата Сообщение от Zilon Посмотреть сообщение
Имеем исходный массив data[], ОДЗ = min .. max;
Если величина допустимых значений элементов массива data[] невелика (например byte или short) то можно каждое значение проверять по массиву isFib[index], так, что index = data[i] - min;
Массив isFib[] содержит для каждого index значение true если index число фибоначи, иначе false.
Такое себе хеширование получается.
Это решение требует N * (max - min) памяти.
Количество памяти можно сократить используя более сложное хеширование.
Чуть не забыл - главное достоинство алгоритма это его сложность О*n + инициализация массива isFib.
как-то сложно вы объясняете

вообщем вот код, может кому-то понадобиться.
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
 
int i, j;
int fibonacci (int, int [100]);
 
void main()
{
clrscr();
int a[100];
int n;
cout <<"Vvedite kol-vo elementov massiva" << endl;
    cin>>n;
cout <<"Ishodniy massiv: ";
    for (i=0;i<n;i++)
    {
    a[i]=rand()%30+5;
    cout<<a[i]<<" ";
    }
fibonacci (n, a);
getch();
}
 
int fibonacci (int n, int a[100])
{
int q[100];
int max, w, b, c;
max=a[0];
    for (i=1;i<n;i++)
    {
    if (max<a[i])
     max=a[i];
    }
w=0;
b=1;
    for (i=0;b<=max;i++)
       {
       c=w+b;
       w=b;
       b=c;
       q[i]=b;
       }
cout << endl;
cout << endl;
cout << "Ryad Fibonacci: ";
    for (j=0;j<i;j++)
      cout<< q[j] << " ";
 
     for (i=0;i<max;i++)
        for (j=0;j<n;j++)
            if (q[i]==a[j])
            {
            for (b=j;b<n-1;b++)
             a[b]=a[b+1];
             n=n-1;
             j--;
            }
cout << endl;
cout << endl;
cout <<"Noviy massiv: ";
    for (i=0;i<n;i++)
        cout<<a[i]<<" ";
return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru