Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
kruglov1
0 / 0 / 1
Регистрация: 04.10.2014
Сообщений: 38
#1

Заполнение массива числами Фибоначчи - C++

20.10.2014, 13:37. Просмотров 2274. Ответов 18
Метки нет (Все метки)

Ряд чисел Фибоначчи задается следующим образом: первые два числа равны 1 ( F 1 = F 2 = 1 ), а каждое следующее равно сумму двух предыдущих: F i = F i - 1 + F i - 2 . Напишите программу, которая вводит натуральное число N и заполняет массив из N элементов первыми N числами Фибоначчи.

Входные данные
Входная строка содержит размер массива N . Гарантируется, что 0 < N ≤ 40 .

Выходные данные
Программа должна вывести содержимое массива: первые N чисел Фибоначчи.
Примеры
входные данные
5
выходные данные
1 1 2 3 5
----------
у меня так, но не работает(
в чем ошибка?
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
#include <iostream>
 
using namespace std;
 
int main ()
{
 
   int a[100];
   a[0] = 1;
   a[1] = 1;
   a[2] = 2;
 
   int i = 3;
 
   int m=0, n;
 
   cin  >> n;
 
   while (a[i-1] < n)
   {
      a[i] = a[i-2] + a[i-1];
 
      i++;
   }
 
   for (int j = 1; j < i; j = j + 2)
      a[j] += m;
 
   for (int j = 0; j < i; j++)
      cout << a[j] << " ";
 
 
   return 0;
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2014, 13:37
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Заполнение массива числами Фибоначчи (C++):

Продублировать элементы массива, являющиеся числами Фибоначчи
Задание : Продублировать элементы, являющиеся числами Фибоначчи;

Вывести элементы массива, порядковые номера которых являются числами Фибоначчи
Дано целочисленный массив. Вывести те его элементы, порядковые номера которых...

Заполнение массива числами
Здравствуйте, есть набор чисел (3, 3.5, 4 ,4.5, 5) требуется заполнить...

Заполнение массива комплексными числами
Почему компилятор выдает ошибку? // ya nachal delaty RGZ!!!!!! #include...

Заполнение двухмерного массива числами от 1 до 9
дан массив a надо по функции rand заполнить матриц числами от 1 до 9 и...

Заполнение массива натуральными числами
Напишите программу, которая заполняет массив первыми N натуральными числами и...

18
Kverter
36 / 36 / 25
Регистрация: 30.10.2013
Сообщений: 211
20.10.2014, 13:42 #2
Не работает, в смысле не компилицо или алгоритм не верный?
0
nmcf
6246 / 5558 / 2528
Регистрация: 14.04.2014
Сообщений: 23,369
20.10.2014, 13:43 #3
Вот всё заполнение:
C++
1
2
3
4
5
int a[40], n;
a[0] = 1;
a[1] = 1;
cin >> n;
for(int i = 2; i < n; i++) a[i] = a[i - 2] + a[i - 1];
Вывод сам добавь.
Ты хоть книжку-то открывал?
0
kruglov1
0 / 0 / 1
Регистрация: 04.10.2014
Сообщений: 38
20.10.2014, 13:44  [ТС] #4
Код прошел лишь 2 теста
выводит не то что нужно
0
Kverter
36 / 36 / 25
Регистрация: 30.10.2013
Сообщений: 211
20.10.2014, 13:48 #5
nmcf, все так =)

Добавлено через 1 минуту
kruglov1, Ошибка здесь
C++
1
2
3
4
5
6
while (a[i-1] < n)
   {
      a[i] = a[i-2] + a[i-1];
 
      i++;
   }
и с выводом у тебя что-то слишком сложное.
0
kruglov1
0 / 0 / 1
Регистрация: 04.10.2014
Сообщений: 38
20.10.2014, 13:48  [ТС] #6
Цитата Сообщение от nmcf Посмотреть сообщение
1] = 1;
cin >>
На этом сайте задачка. http://informatics.mccme.ru/mod/stat...terid=112276#1
Проходит лишь 2 теста из 21.
Я хз как решить(
0
Kverter
36 / 36 / 25
Регистрация: 30.10.2013
Сообщений: 211
20.10.2014, 13:50 #7
kruglov1, Тебе уже решение написали.
0
kruglov1
0 / 0 / 1
Регистрация: 04.10.2014
Сообщений: 38
20.10.2014, 13:51  [ТС] #8
Цитата Сообщение от kruglov1 Посмотреть сообщение
Код прошел лишь 2 теста
выводит не то что нужно
Мне то нужно ввести n и вывести n элементов последовательности Фибоначчи.
А выводит больше, чем нужно или вообще не то
0
nmcf
6246 / 5558 / 2528
Регистрация: 14.04.2014
Сообщений: 23,369
20.10.2014, 13:52 #9
C++
1
for(int i = 0; i < n; i++) cout << a[i] << " ";
0
Kverter
36 / 36 / 25
Регистрация: 30.10.2013
Сообщений: 211
20.10.2014, 13:53 #10
ох.....тебе же сказали,только вывод подставить....
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int main ()
{
 
   int a[40], n;
a[0] = 1;
a[1] = 1;
cin >> n;
for(int i = 2; i < n; i++) a[i] = a[i - 2] + a[i - 1];
 
   for (int j = 0; j < n; j++)
      cout << a[j] << " ";
 
 system("PAUSE");
   return 0;
 
}
0
kruglov1
0 / 0 / 1
Регистрация: 04.10.2014
Сообщений: 38
20.10.2014, 13:57  [ТС] #11
Цитата Сообщение от Kverter Посмотреть сообщение
ох.....тебе же сказали,только вывод подставить....
на сайте этот код лишь 1 тест из 21 прошел...
Сейчас вообще не понял, как так?))
код проверил, рабочий. Но сайт не принимает
0
MrGluck
Модератор
Эксперт CЭксперт С++
8022 / 4865 / 1425
Регистрация: 29.11.2010
Сообщений: 13,251
20.10.2014, 14:08 #12
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
int main()
{
    const unsigned int A[40] = {1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,
        377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025,
        121393, 196418, 317811, 514229, 832040, 1346269, 2178309, 3524578, 5702887,
        9227465, 14930352, 24157817, 39088169, 63245986, 102334155};
    int x;
    std::cin >> x;
    std::cout << A[x-1];
}
0
Kverter
36 / 36 / 25
Регистрация: 30.10.2013
Сообщений: 211
20.10.2014, 14:16 #13
MrGluck, хД
0
Pythonbro
0 / 0 / 0
Регистрация: 29.01.2015
Сообщений: 4
01.03.2015, 22:56 #14
Эмм... Попробуй подставить 1 или 0 у тебя код не будет работать. В этой задаче нужно условие еще подставить.

Добавлено через 33 секунды
в смысле код рабочий, но ответ не верно выведет.

Добавлено через 5 минут
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
#include <iostream>
 
using namespace std;
 
int main()
{
    int a[40], x;
    cin >> x;
    a[0] = 1;
    a[1] = 1;
    if (x == 0) { cout << 0; }
    if (x == 1) { cout << 1; }
    if (x != 0 && x != 1){
        cout << a[0] << " " << a[1] << " ";
        for (int i = 2; i < x; i++)
        {
            a[i] = a[i - 1] + a[i - 2];
            cout << a[i] << " ";
        }
    }
   
    system("pause");
    return 0;
}
0
MakeEasy
41 / 41 / 26
Регистрация: 24.02.2015
Сообщений: 151
02.03.2015, 08:57 #15
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
 
int main()
{
    int N;
    std::cin >> N;
    for(int i = 1; i <= N; ++i) std::cout << i << " ";
    return 0;
}
0
zss
Модератор
Эксперт С++
6959 / 6521 / 4139
Регистрация: 18.12.2011
Сообщений: 17,209
Завершенные тесты: 1
02.03.2015, 11:05 #16
MakeEasy, А какое отношение Ваш код имеет к числам Фибоначчи?
0
MakeEasy
41 / 41 / 26
Регистрация: 24.02.2015
Сообщений: 151
02.03.2015, 11:10 #17
Цитата Сообщение от zss Посмотреть сообщение
MakeEasy, А какое отношение Ваш код имеет к числам Фибоначчи?
Никакого, как и задача по ссылке у автора.
0
zss
Модератор
Эксперт С++
6959 / 6521 / 4139
Регистрация: 18.12.2011
Сообщений: 17,209
Завершенные тесты: 1
02.03.2015, 12:18 #18
Цитата Сообщение от MakeEasy Посмотреть сообщение
Никакого, как и задача по ссылке у автора.
У ТС есть такой код
while (a[i-1] < n)
{
a[i] = a[i-2] + a[i-1];
i++;
}
0
MakeEasy
41 / 41 / 26
Регистрация: 24.02.2015
Сообщений: 151
02.03.2015, 12:38 #19
zss
Цитата Сообщение от kruglov1 Посмотреть сообщение
На этом сайте задачка. http://informatics.mccme.ru/mod/stat...terid=112276#1
Проходит лишь 2 теста из 21.
Я хз как решить(
Я про это, там не фибоначчи
0
02.03.2015, 12:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2015, 12:38
Привет! Вот еще темы с решениями:

Заполнение массива случайными числами
Подскажите пожалуйста, как заполнить массив случайными числами в div-C++?...

Заполнение массива случайными числами
Доброго времени суток. Перейду сразу к сути: Надо построить массив из 5000...

Заполнение массива случайными числами
Извините за наиглупейший вопрос, но я забыл как задавать диапазон случайных...

Заполнение массива рандомными числами
Здравствуйте! Нужно заполнить массив float рандомными числами от 0.3 до 0.9 ...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

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