9 / 9 / 2
Регистрация: 03.04.2016
Сообщений: 89
1

По данному числу N определите N-е число Фибоначчи F(N)

04.04.2016, 22:55. Показов 50610. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Последовательность Фибоначчи определяется так:
F(0) = 0, F(1) = 1, …, F(n) = F(n−1) + F(n−2).
По данному числу N определите N-е число Фибоначчи F(N).
Формат входных данных
Вводится натуральное число N.
Формат выходных данных
Выведите ответ на задачу.
Sample Input: 6
Sample Output: 8

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream>
using namespace std;
int main()
{
    int n, fib, fib0=0, fib1=1, i=1;
    cin>>n;
while (i=n-1) {
    fib = fib0 + fib1;
    fib0 = fib1;
    fib1 = fib;
    i++;}
    cout<<fib;   
return 0;
}
Решение долгое по времени. Как ускорить?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.04.2016, 22:55
Ответы с готовыми решениями:

Найти ближайшее целое число к данному числу, которое делится на второе число без остатка
Пример 1. Есть числа 35 и 14. 35 не делится на 14 без остатка, поэтому ищем ближайшее целое число...

По данному числу k найдите k-е по счету простое число
По данному числу k найдите k-е по счету простое число.

Задано натуральное число N Найти ближайшее число Фибоначчи к заданному числу
Написать программу на языке С#, которая решает поставленную задачу с использованием цикла do/while ...

Определите 20-ое число Фибоначчи
Определите 20-ое число Фибоначчи ,где последовательность чисел Фибоначчи (Fn)задается линейным...

8
116 / 106 / 51
Регистрация: 29.03.2016
Сообщений: 480
04.04.2016, 23:46 2
ответы тут: https://habrahabr.ru/post/261159/
0
9 / 9 / 2
Регистрация: 03.04.2016
Сообщений: 89
05.04.2016, 00:34  [ТС] 3
И это долго, не принимается задачка.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include<iostream>
int main()
{
    int n, a=1, a0=0, i=1;
   std::cin>>n;
while (i=n-1) {
    a, a0 = a + a0, a;
    i++;}
   if (n>0)
std::cout<<a;
else   std::cout<<0;
return 0;
}
0
116 / 106 / 51
Регистрация: 29.03.2016
Сообщений: 480
05.04.2016, 00:46 4
попробуйте формулу Бине применить
https://ru.wikipedia.org/wiki/... 1%87%D0%B8
0
9 / 9 / 2
Регистрация: 03.04.2016
Сообщений: 89
05.04.2016, 00:59  [ТС] 5
Вот оно, решение, получилось! Ура!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
int main() {
  int a=0, b=1, i=0, n; 
  cin >> n;
  while (i<n) {
    i++;
    b=a+b;
    a=b-a;
  }
  cout << a; 
  return 0;
}
1
2662 / 2237 / 240
Регистрация: 03.07.2012
Сообщений: 8,138
Записей в блоге: 1
05.04.2016, 15:41 6
Цитата Сообщение от AGPro Посмотреть сообщение
#include<iostream>
using namespace std;
int main()
{
* * int n, fib, fib0=0, fib1=1, i=1;
* * cin>>n;
while (i=n-1) {<-- это что за фигня?
* * fib = fib0 + fib1;
* * fib0 = fib1;
* * fib1 = fib;
* * i++;}
* * cout<<fib; *
return 0;
}
Условие ошибочно
0
9 / 9 / 2
Регистрация: 03.04.2016
Сообщений: 89
06.04.2016, 00:49  [ТС] 7
zer0mail, Я ж написал уже, Ура!
0
Падаван С++
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
06.04.2016, 11:01 8
AGPro,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
 
template<int i> struct Elem { 
    static const unsigned long value = Elem<i - 1>::value + Elem<i - 2>::value; 
};
template<> struct Elem<0> { 
    static const unsigned long value = 0; 
};
template<> struct Elem<1> { 
    static const unsigned long value = 1; 
};
template<int r, int t> struct Table : Table<r + 1, t - 1> {
    Table() { 
        values[t] = Elem<t>::value; 
    }
};
template<int r> struct Table<r, 0> {
    unsigned long values[r + 1];
    Table() { 
        values[0] = Elem<0>::value; 
    }
    unsigned long operator[](int i) { return values[i]; }
};
 
typedef Table<0, 32> FIB_TABLE;
 
int main() {
    FIB_TABLE obj;
    for (size_t i(0); i < 32; i++)
        std::cout << obj[i] << std::endl;
    std::cin.ignore();
    return 0;
}
0
20 / 20 / 20
Регистрация: 07.02.2016
Сообщений: 87
16.06.2016, 15:12 9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
 
using namespace std;
 
int main() {
  // put your code here
  int f_n_1 = 0;
  int f_n_2 = 0;
  int f_n =0;  
  int N = 0;
  int index = 0;  
  cin >> N;
  if (N == 0) {cout << 0;   return 0;}
  if (N == 1) {cout << 1;   return 0;}
  f_n_2 = 0; 
  f_n_1 = 1;
  index++;  
  while (index++ < N){
    f_n = f_n_2 + f_n_1;
    f_n_2 = f_n_1;
    f_n_1 = f_n;  
  }
  cout << f_n;  
  return 0;
}
0
16.06.2016, 15:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.06.2016, 15:12
Помогаю со студенческими работами здесь

Вводится целое число F. Найти число n, для которого значение n-ого числа Фибоначчи является ближайшим числу F, но не бол
Вводится целое число F. Найти число n, для которого значение n-ого числа Фибоначчи является...

По данному натуральному числу N выведите такое наименьшее целое число k, что 2k≥N
Здраствуйте. У меня тут несколько задач. Пожалуста помогите!!! Очень нужно. 1) По данному...

По заданному числу n найти n-ое число Фибоначчи
По заданному числу n найти n-ое число Фибоначчи. Вход 7 49 Выход 13 7778742049

По заданному числу n выведите n-e число Фибоначчи
1. По заданному числу n выведите n-e число Фибоначчи.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru