Помощь - Поиск - Пользователи - Календарь
Полная версия: Статические переменные
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
Rocket
Подскажите пожалуйста, как реализовать функцию, возвращающую числа Фибоначчи (с применением статических переменных),то есть при первом вызове возвращается первое число Фибоначчи, при втором вызове - второе, и т.д.
Atos
Язык программирования какой?
Rocket
Цитата(Atos @ 21.10.2007 15:06) *

Язык программирования какой?

Ой,точно забыл указать. Сорри) Язык программирования- си.
klem4
что-то вроде этого:

# include <conio.h>
# include <stdio.h>

int foo () {
static int value_count;

if (value_count++ < 1)
return 1;
else {

int current_value = 0, pred_value = 1;;

for (int i = 1; i <= value_count; i++) {

int T = current_value;

current_value += pred_value;
pred_value = T;

}

return current_value;
}
}
int main(void) {
clrscr();

for (int i = 0; i < 12; i++)
printf("\nfoo() = %d", foo());

getch();
return 0;
}
volvo
Андрей, проще никак? smile.gif

#include <stdio.h>
#include <stdlib.h>

int fib() {
static int first = 0, second = 1;
int T = first + second;
return first = second, second = T;
}

int main()
{
int i;
for(i = 1; i < 10; ++i) {
printf("%4d", fib());
}
return 0;
}
Rocket
Спасибо за помощь good.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.