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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
elka
1 / 1 / 0
Регистрация: 31.03.2012
Сообщений: 38
31.03.2012, 16:53     последовательность Фибоначчи #1
Вводятся с клавиатуры количество чисел в последовательности Фибоначчи.
можете подсказать ошибки?
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();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
31.03.2012, 17:06     последовательность Фибоначчи #2
i не объявлена
Kidasov
76 / 76 / 12
Регистрация: 02.12.2011
Сообщений: 966
Записей в блоге: 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
76 / 76 / 12
Регистрация: 02.12.2011
Сообщений: 966
Записей в блоге: 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
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
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
76 / 76 / 12
Регистрация: 02.12.2011
Сообщений: 966
Записей в блоге: 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
76 / 76 / 12
Регистрация: 02.12.2011
Сообщений: 966
Записей в блоге: 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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.05.2012, 02:01     последовательность Фибоначчи
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
09.05.2012, 02:01     последовательность Фибоначчи #12
elka, ты чем смотришь? Вот же без массива и рекурсий: последовательность Фибоначчи
Yandex
Объявления
09.05.2012, 02:01     последовательность Фибоначчи
Ответ Создать тему
Опции темы

Текущее время: 05:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru