Задача на фибоначчи. помогите решить.

Тема в разделе "Общие вопросы по С и С++", создана пользователем Mcicool, 9 окт 2006.

  1. Mcicool

    Mcicool Гость

    Репутация:
    0
    Написать функцию без параметров, без массивов в теле функции
    и без глобальных переменных, возвращающую при каждом обращении
    ссылку на переменную, содержащую значение очередного члена ряда
    Фибоначчи:
    a[0]=1, a[1]=1,..., a=a[i-1]+a[1-2] для i>1.
    В основной программе ввести с клавиатуры размер динамически
    формируемого массива и определить массив. Используя функцию,
    присвоить элементам массива значения членов ряда Фибоначчи и
    вывести их в обратном порядке, определив соответствующий
    макрос.
    Написать вторую функцию, "разыскивающую" в массиве "самый левый"
    элемент с заданным свойством. Свойство выберите самостоятельно.
    Функция должна возвращать указатель (адрес) на найденный элемент
    либо 0, если элементов с заданным свойством в массиве нет.
    Используя функцию, так измените значения найденных элементов
    в созданном ранее массиве, чтобы они утратили искомое свойство.
    Выведите измененный массив.
     
  2. pushkin

    pushkin Гость

    Репутация:
    0
    Условие задачи очень "пахнет" олимпиадностью. По крайней мере мне пока не очень понятно, как можно выдавать каждый раз разные значения на выходе из функции (Random я не рассматриваю), если негде хранить промежуточные данные (два предыдущих числа из последовательности). Конечно, можно извратнуться и хранить эти два числа в файле или передавать их Web сервису, написанному специально для этой цели - в этих случаях все условия будут соблюдены.

    Словом, все вышеперечисленное заставляет меня усомниться в корректности условия задачи. Может быть имелось в виду, что нужно написать функцию-член класса, среди полей которого могут быть переменные (в таком случае они уже не будут глобальными).

    Короче, я пока пас. Если что-нить придумаю - обязательно сюда напишу.

    P. S. Все остальные требования вообще простые относительно первого: функция без параметров, без массивов в теле (без возвращаемого значения:)), которая при каждом обращении возвращает следующее число в последовательности Фибоначи.
     
  3. Kmet

    Kmet Well-Known Member
    Java Team

    Репутация:
    0
    Регистрация:
    25 май 2006
    Сообщения:
    1.034
    Симпатии:
    7
    Задача совсем не олимпиадная, скорее на знание языка. Скорее всего предпологается использование статических переменных(для не реитерабельной функции)

    Код (Text):
    int fenob()
    {
    static int f=1;
    static int s=1;
    int t=f+s;
    f=s;
    s=t;
    return t;
    }
    такой вот набросок. не совсем правильный так как выдает члены начиная с третьего, но думаю суть понятна
     
  4. pushkin

    pushkin Гость

    Репутация:
    0
    Опана - тут я и накололся - действительно так возможно, но статические переменные - те же глобальные, только у них область видимости ограничена телом функции. А я и забыл про них - спасибо за напоминание :)))
     
  5. Slavon76

    Slavon76 Гость

    Репутация:
    0
    Привет, посмотри этот код - может быть подойдёт :
    #include <conio.h>
    #include <stdio.h>

    long fib (int n)
    {
    if ((n == 0) || (n ==1))
    return 1;
    else
    return (fib (n-1) + fib (n-2));
    }

    void main()
    {
    int n = 0;
    for ( ; n <= 20; n++)
    printf ("Fibunachi (%d): %ld\n\r", n, fib(n));
    }
     
  6. pushkin

    pushkin Гость

    Репутация:
    0
    Код, конечно, работает, но, к сожалению, не проходит по условию задачи - нужно было написать функцию без параметров. То, что проходит по условию уже привел г-н Kmet. Спасибо ему большое.
     
  7. Mcicool

    Mcicool Гость

    Репутация:
    0
    Спасибо всем большое ) Я, правда уже сам все давно сделал ))
     
Загрузка...
Похожие Темы - Задача на фибоначчи
  1. sasha465
    Ответов:
    2
    Просмотров:
    6.467
  2. elzim
    Ответов:
    0
    Просмотров:
    1.085
  3. ShaoKahn
    Ответов:
    0
    Просмотров:
    1.353
  4. eremin-sanek
    Ответов:
    3
    Просмотров:
    1.242
  5. MonteCristo
    Ответов:
    1
    Просмотров:
    926

Поделиться этой страницей