Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/16: Рейтинг темы: голосов - 16, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 27.10.2010
Сообщений: 80
1

Для последовательности Фибоначчи найти k-й член последовательности

29.09.2012, 21:00. Показов 3269. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Для последовательности Фибоначчи:

1) Найти k-й член последовательности
2) Получить первые n членов последовательности
3) Верно ли, что сумма первых n членов последовательности есть четное число?

не пойму как сделать 1) если пользователь введет например 0 или 1, у меня выходит ошибка.
закидывать сначала в массив всю последовательность нельзя, понятное дело.

хотел так, но тут проблемы с 0 и 1 элементами, можно как-то по-человечески сделать первый пункт?


C
1
2
3
4
5
6
7
8
9
10
11
12
13
fibi[0]=0;
fibi[1]=1;
 
printf("Kakkoi k chlen vuvesti1? ");
scanf("%i", &num_elem);
    
for(i=2; i<num_elem; ++i)
{
    fibi[i]=fibi[i-2]+fibi[i-1];
    re_elem=fibi[i];
}
 
printf("%i chlen = %i",num_elem,re_elem);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.09.2012, 21:00
Ответы с готовыми решениями:

Найти min четный член последовательности и max нечетный член последовательности
Даны натуральные числа н, А1, А2.....Ан. Найти минимум(четный член последовательности) и...

Найти первый член последовательности, для которого выполнено условие
Найти первый член последовательности, для которого выполнено условие /an-an-1/&lt;e, если...

Найти член последовательности, удовлетворяющий правилу
Добрый время суток, помогите исправить программу. Условие задачи ниже. #include &quot;stdafx.h&quot;...

Найти N-ый член последовательности, сократив количество рекурсивных вызовов
Определите закономерность формирования членов последовательности. Найдите N-ый член...

8
Заблокирован
29.09.2012, 21:14 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

C
1
2
3
4
if(num_elem<2)re_elem =num_elem;
else
for(i=2; i<num_elem; ++i)
{........................
0
59 / 59 / 8
Регистрация: 29.06.2012
Сообщений: 188
29.09.2012, 21:21 3
может без if , просто сразу
C++
1
2
scanf("%i", &num_elem);
re_elem =num_elem;
и если надо то в цикле поменяется)
0
0 / 0 / 0
Регистрация: 27.10.2010
Сообщений: 80
29.09.2012, 21:24  [ТС] 4
окей с этим разобрались, теперь со вторым, у меня вывод только последовательность до num_elem в данном случае (в задаче до K члена) потом идет всякий мусор идет типа -100500

писал что-то вроде

C
1
2
3
4
5
6
printf("\nDo kakogo chlena vuvesti? ");
    scanf("%i", &line_num);
for(i=0; i<line_num; ++i)
{
printf("%i ", fibi[i]);
}
ну это логично, потому что формула задается до num_elem, если line_num > num_elem, нужно как-то продолжить заполнять массив
0
59 / 59 / 8
Регистрация: 29.06.2012
Сообщений: 188
29.09.2012, 21:42 5
C++
1
2
3
4
5
6
do 
{
printf("\nDo kakogo chlena vuvesti? ");
scanf("%i", &line_num);
}
while (line_num > num_elem)
типа пока не введут меньше k-го порядка будет запрос на ввод
0
0 / 0 / 0
Регистрация: 27.10.2010
Сообщений: 80
29.09.2012, 22:15  [ТС] 6
все бы ничего, но нужно, чтобы можно вводить больше К-того порядка)
0
59 / 59 / 8
Регистрация: 29.06.2012
Сообщений: 188
29.09.2012, 22:34 7
а смысл рассчитывать меньшее число элементов, чем нужно вывести?
0
0 / 0 / 0
Регистрация: 27.10.2010
Сообщений: 80
29.09.2012, 22:49  [ТС] 8
Смотрите у нас есть последовательность чисел, нам надо из них вытащить к-ый элемент, вытаскиваем используя формулу. Дальше нам надо вывести последовательность чисел до n причем n>k.

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

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377... (и т.д)

нам нужен элемент К=4, на выходе получаем 2, теперь вводим n причем n>k, к примеру n=8, на выходе получаем 0, 1, 1, 2, 3, 5, 8, 13.
0
Master of Orion
Эксперт .NET
6100 / 4956 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
30.09.2012, 02:19 9
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
#include <stdio.h>
 
void fib(unsigned n, int printSequence);
int isEvenFib(unsigned x);
 
int main(void)
{
    int i, x;
    do
    {
        printf("Input positive X ");
        scanf("%d",&x);
    } while (x<0);
    printf("\nZadanie #1\n");
    fib(x,0);
    printf("\n\nZadanie #2\n");
    fib(x,1);
    printf("\n\nZadanie #3");
    for (i = 0; i < x; i++)
        printf("\nSum of F[0]..F[%d] is %s", i, isEvenFib(i) ? "even" : "odd" );
    printf("\n\n\nProgram is terminated. Press any key to exit ", i);
    getchar();
    return 0;
}
 
void fib(unsigned n, int printSequence)
{
    int i;
    unsigned a = 1, b = 1, temp;
    if (n<0) return;
    if (printSequence)
        printf("%d %d ",a,b);
    for (i = 1; i < n; i++)
    {
        temp = a;
        a += b;
        b = temp;
        if (printSequence)
            printf("%d ",a);
    }
    if (!printSequence)
        printf("%d ",a);
}
 
int isEvenFib(unsigned x)
{
    int i;
    unsigned a = 1, b = 1, result = 2, temp;
    if (x < 1) return 0;
    for (i = 1; i < x; i++)
    {
        temp = a;
        a += b;
        b = temp;
        result += a;
    }
    return !(result & 1);
}
0
30.09.2012, 02:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.09.2012, 02:19
Помогаю со студенческими работами здесь

Найти N-й элемент последовательности чисел Фибоначчи
Описать функцию Fib(N) целого типа, вычисляющую N-й элемент последовательности чисел Фибоначчи FK,...

Получить минимальный член последовательности
Помогите, срочно нужен код для получения min(a1 + an+1, a2 + an+2, …, an + a2n), Если Входящие...

Рекурсивные функции. Найдите n-ый член последовательности
Определите закономерность формирования членов последовательности. Найдите n-ый член...

Найти количество 0 в последовательности и произведение последовательности
Даны натуральные числа A1,A2…. Признак конца последовательности 333. Найти количество 0 в...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru