IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> Статические переменные
Rocket
сообщение 21.10.2007 13:59
Сообщение #1


Знаток
****

Группа: Пользователи
Сообщений: 306
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


Подскажите пожалуйста, как реализовать функцию, возвращающую числа Фибоначчи (с применением статических переменных),то есть при первом вызове возвращается первое число Фибоначчи, при втором вызове - второе, и т.д.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 5)
Atos
сообщение 21.10.2007 14:06
Сообщение #2


Прогрессор
****

Группа: Модераторы
Сообщений: 602
Пол: Мужской
Реальное имя: Михаил

Репутация: -  9  +


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

Сообщение отредактировано: Atos - 21.10.2007 14:06
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Rocket
сообщение 21.10.2007 14:11
Сообщение #3


Знаток
****

Группа: Пользователи
Сообщений: 306
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


Цитата(Atos @ 21.10.2007 15:06) *

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

Ой,точно забыл указать. Сорри) Язык программирования- си.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 21.10.2007 14:47
Сообщение #4


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


что-то вроде этого:

# 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;
}


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 21.10.2007 14:54
Сообщение #5


Гость






Андрей, проще никак? 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
сообщение 21.10.2007 15:08
Сообщение #6


Знаток
****

Группа: Пользователи
Сообщений: 306
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


Спасибо за помощь good.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 26.07.2025 2:30
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"