Подскажите пожалуйста, как реализовать функцию, возвращающую числа Фибоначчи (с применением статических переменных),то есть при первом вызове возвращается первое число Фибоначчи, при втором вызове - второе, и т.д.
# 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;
}
#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;
}