![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
| Результаты опроса: Актуальна ли эта тема? | |||
| Да |
|
2 | 66.67% |
| Нет |
|
1 | 33.33% |
| Голосовавшие: 3. Вы еще не голосовали в этом опросе | |||
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Мне необходимо написать программу, которая вычисляет элемент последовательности Фибоначчи. Я думал сделать программу вот так:
Код:
#include <stdio.h>
#include <conio.h>
int main() {
int T, N[40], i;
scanf("%d", &T);
while(T > 0) {
scanf("%d", &i);
for(i = 3; i <= 40; i++)
N[i - 2] = 0;
N[i - 1] = 1;
N[i] = N[i - 1] + N[i - 2];
printf("%d\n", N[i]);
}
getch();
return 0;
} |
|
#2
|
|||
|
|||
|
Цитата:
Классический алгоритм рассчета чисел фибоначи - рекурсивный. Код:
int fib(int N)
{
if (N <= 2) return 1
else return fib(N-1) + fib(N-2);
}Кажется так... |
|
#3
|
||||
|
||||
|
И где хоть что-то, связанное с числами фибоначчи, и что хоть вводится?
Код:
a1 = 0;
a2 = 1;
for (int i = 0; i < needed; ++i)
{
int t = a1 + a2;
a1 = a2;
a2 = t;
}Последний раз редактировалось Bargest, 11.01.2013 в 21:36. |
|
#4
|
|||
|
|||
|
Цитата:
|
|
#5
|
||||
|
||||
|
И кстати для больших чисел будет удобнее так:
Код:
const int fi = 1,6180339887498948482045868343656 int f = (int)((pow(fi, n) - (pow(-fi, -n)))/(2*fi-1) + 0.5); Последний раз редактировалось Bargest, 11.01.2013 в 21:50. |
|
#6
|
|||
|
|||
|
Я изменил программу вот так:
Код:
#include <stdio.h>
#include <conio.h>
int main() {
int T, N[40], i;
scanf("%d", &T);
while(T > 0) {
scanf("%d", &i);
for(i = 1; i <= 40; i++)
{
N[0] = 0;
N[1] = 1;
N[i] = N[i - 1] + N[i - 2];
printf("%d\n", N[i]);
}
T--;
}
getch();
return 0;
} |
|
#7
|
||||
|
||||
|
А кто предварительно переменные инициализировать будет? Они локальные, а значит там "мусор".
|
|
#8
|
|||
|
|||
|
Цитата:
|
|
#9
|
||||
|
||||
|
В С вроде так:
Код:
int T=0, N[40]=0, i; |
|
#10
|
||||
|
||||
|
Цитата:
А также не пойму смысла массива вообще, когда задача решается без него. Последний раз редактировалось Bargest, 12.01.2013 в 12:33. |
| Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
MahovIV (15.01.2013)
| ||
|
#11
|
|||
|
|||
|
Цитата:
|
|
#12
|
||||
|
||||
|
Без массива она решается быстрее. Гораздо. Как я показывал. И без рекурсии. И экономнее в памяти.
|
|
#13
|
|||
|
|||
|
Цитата:
|