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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
elka
1 / 1 / 0
Регистрация: 31.03.2012
Сообщений: 38
#1

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

31.03.2012, 16:53. Просмотров 1220. Ответов 11
Метки нет (Все метки)

Вводятся с клавиатуры количество чисел в последовательности Фибоначчи.
можете подсказать ошибки?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream.h>
void main()
{
int n,*Fib;
cout<<”Vvod n:;
cin>>n;
Fib=new int[n];
if (n==0||n==1)
Fib[i]=1;
else
Fib[i]=Fib[n-1]+fib[n-2];
for(int i=o;i<n;i++)
cout<<fib(i)<<’\n’;
cin.get();
cin.get();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2012, 16:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос последовательность Фибоначчи (C++):

Последовательность Фибоначчи - C++
Последовательностью Фибоначчи называется последовательность чисел a0, a1, ..., an, ..., где a0 = 0, a1 = 1, ak = ak-1 + ak-2 (k &gt; 1). ...

Последовательность Фибоначчи - C++
нужно вычислить все числа Фибоначчи до n-го включительно( с помощью массива), вывести их в обратном поряде.Ну или хотя бы скажите как...

Последовательность Фибоначчи - C++
Последовательность Фибоначчи образуется так: первый и второй члены последовательности равны 1, каждый следующий равен сумме двух...

Последовательность чисел Фибоначчи - C++
Последовательность чисел Фибоначчи характеризуется тем, что она начинается с 0, 1, и каждый последующий элемент является суммой двух...

программа на с++ последовательность фибоначчи - C++
Последовательность Фибоначчи: 1,1,2,3,5,8,13… Найти: первое число в последовательности Ф. большее заданному n; сумму всех чисел в...

Напечатать последовательность чисел Фибоначчи - C++
Напечатать последовательность чисел Фибоначчи 1, 1, 2 , 3, 5, ... и т.д, где каждое число равно сумме двух предыдущих: ровно N чисел

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
31.03.2012, 17:06 #2
i не объявлена
Kidasov
77 / 77 / 12
Регистрация: 02.12.2011
Сообщений: 965
Записей в блоге: 3
31.03.2012, 17:12 #3
Во-первых i не объявлена, во-вторых где у вас вычисление i-го члена ряда Фибоначчи. Вот исправленный вариант. Спрашивайте то, что вам не ясно

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
int main() {
    int n;
    std::cout << "Enter the size " << std::endl;
    std::cin >> n;
    int *fib = new int[n];
    fib[0] = fib[1] = 1;
    for (int i = 2; i < n; i++) {
        fib[i] = fib[i - 1] + fib[i - 2];
    }
    for (int i = 0; i < n; i++) {
        std::cout << fib[i] << " ";
    }
    std::cout << std::endl;
    delete[] fib;
    return 0;
}
elka
1 / 1 / 0
Регистрация: 31.03.2012
Сообщений: 38
31.03.2012, 17:23  [ТС] #4
все равно 3 число уже не считает
Kidasov
77 / 77 / 12
Регистрация: 02.12.2011
Сообщений: 965
Записей в блоге: 3
31.03.2012, 17:31 #5
elka, почему не считает ??

1) Ты вводишь размерность, например
Enter the size: 3

Вывод 1 1 2

Enter the size: 5

Вывод 1 1 2 3 5
Nameless One
Эксперт С++
5771 / 3420 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
31.03.2012, 17:54 #6
Вариант без массивов:

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
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char* argv[])
{
    size_t i, n;
    size_t a = 0, b = 1;
    char junk;
 
    if(argc != 2)
    {
        fprintf(stderr, "Usage: %s NUM\n", argv[0]);
        exit(1);
    }
    
    if(sscanf(argv[1], "%zu %c", &n, &junk) != 1)
    {
        fprintf(stderr, "%s: no parse\n", argv[1]);
        exit(1);
    }
    
    for(i = 0; i < n; ++i)
    {
        size_t temp;
    
        printf("%zu ", b);
        temp = b;
        b += a;
        a = temp;
    }
 
    putchar('\n');
    exit(0);
}
elka
1 / 1 / 0
Регистрация: 31.03.2012
Сообщений: 38
31.03.2012, 18:42  [ТС] #7
Kidasov, неет,все нормально,спасибо)
elka
1 / 1 / 0
Регистрация: 31.03.2012
Сообщений: 38
08.05.2012, 19:55  [ТС] #8
как можно без использования массива
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream.h>
 
void main() {
    int n;
    cout << "Enter the size " << endl;
    cin >> n;
    int i;
    int *fib = new int[n];
    fib[0] = fib[1] = 1;
    for (i = 2; i < n; i++) {
    fib[i] = fib[i - 1] + fib[i - 2];
    }
    for (i = 0; i < n; i++) {
    cout << fib[i] << " ";
    }
    cout << endl;
    delete[] fib;
    cin.get();
    cin.get();
}
Добавлено через 34 минуты
помогите,пожалуйста!

Добавлено через 39 минут
кто-н отзовитесь!
Kidasov
77 / 77 / 12
Регистрация: 02.12.2011
Сообщений: 965
Записей в блоге: 3
08.05.2012, 20:20 #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cstdlib>
 
int fib(int i) {
    if (i == 1 || i == 2) return 1;
    else return (fib(i-2) + fib(i - 1));
}
 
int main() {
    int n;
    std::cout << "Enter the size " << std::endl;
    std::cin >> n;
    for (int i = 0; i < n; i++) {
        std :: cout << fib(i + 1) << " ";
    }
    std :: cout << std :: endl;
    system ("pause");
    return 0;
}
elka
1 / 1 / 0
Регистрация: 31.03.2012
Сообщений: 38
08.05.2012, 21:48  [ТС] #10
преподаватель попросил сделать без матриц и рекурсий
Kidasov
77 / 77 / 12
Регистрация: 02.12.2011
Сообщений: 965
Записей в блоге: 3
08.05.2012, 21:59 #11
Тогда вот так)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <cstdlib>
 
int main() {
    int n, first, second;
    first = second = 1;
    std::cout << "Enter the size " << std::endl;
    std::cin >> n;
    if (n > 2) {
        std :: cout << first << " " << second << " ";
        for (int i = 2; i < n; i++) {
            int third = first + second;
            first = second;
            second = third;
            std :: cout << third << " ";
        }
    }
    else if (n == 1 || n == 2) std :: cout << first << " " << second << " ";
    std :: cout << std :: endl;
    system ("pause");
    return 0;
}
Nameless One
Эксперт С++
5771 / 3420 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
09.05.2012, 02:01 #12
elka, ты чем смотришь? Вот же без массива и рекурсий: последовательность Фибоначчи
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.05.2012, 02:01
Привет! Вот еще темы с ответами:

Вывести последовательность из N чисел Фибоначчи (1, 1, 2, 3, 5, 8, 13…). - C++
Вывести последовательность из N чисел Фибоначчи (1, 1, 2, 3, 5, 8, 13…).

Последовательность Фибоначчи для строк - C++
#include &lt;conio.h&gt; using namespace std; // переменные char *Ptr; char a, b, c; int i,n; // основная функция int main () { ...

Определить, входит ли в последовательность i-ое число Фибоначчи - C++
Дана упорядоченная последовательность натуральных чисел b произвольной длины. Найти, входит ли в эту последовательность I(итое)число...

Сгенерировать максимально возможную последовательность Фибоначчи - C++
Всем привет, помогите пожалуйста написать программу для одного из заданий: Сгенерировать максимально возможную последовательность...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.05.2012, 02:01
Ответ Создать тему
Опции темы

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