Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 14.04.2013
Сообщений: 40
1

Найти номер заданного числа Фибоначи

05.04.2016, 13:44. Показов 2027. Ответов 4
Метки нет (Все метки)

Дано положительное число А. Найти номер к такого числа Фибоначи Xk, что Xk-1≤A<Xk
Числа Фибоначи X1=1, X2=1, X3=2,....Xk=Xk-1+Xk-2
Протестировать задачу для значений A 4, 51, 21. Результат вывести на экран
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.04.2016, 13:44
Ответы с готовыми решениями:

Программа, которая для заданного натурального числа вычисляет 1000-ное число Фибоначи
Помогите написать программу, которая для заданного натурального числа вычисляет 1000-ное число...

Найти номер первого вхождения заданного числа в массиве
1. Вычислить среднее арифметическое квадратов положительных элементов. 2. Определить количество...

Дан массив, упорядоченный по убыванию. Найти номер первого элемента, меньшего заданного числа a
Дан массив, упорядоченный по убыванию. Найти номер первого элемента, меньшего заданного числа a.

Найти первую и последнюю цифры заданного числа; найти сумму цифр заданного числа
Помогите решить в С++ 2.1 Дано натуральное число: − найти первую и последнюю цифры числа;...

4
101 / 94 / 104
Регистрация: 29.11.2009
Сообщений: 407
05.04.2016, 13:53 2
Лучший ответ Сообщение было отмечено WaK как решение

Решение

WaK, МИРЭА РТС лаба 1 вариант 3 задание 3 Автор Беляева А.
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
#include <iostream>
#include <math.h>
using namespace std;
 
int fibo(int n)  //рекурсивная функция
{
    if((n == 0)||(n == 1)){
        return n;
    }else{ 
        return fibo(n-1)+fibo(n-2); //в этой строке вызываем функцию рекурсивно
    }
}
 
int main ()
{
    int a, result1, fib1, fib2;
    cout<<"enter number: ";
    cin>>a;
    for(int i=1;i<500;i++){
        fib1 = fibo(i-1);
        fib2 = fibo(i);
        if ((fib1 <= a)&&(a < fib2)){
            cout<<"fibonachi number = "<<i<<endl;
            break;
        }
    }
    return 0;
}
1
0 / 0 / 1
Регистрация: 18.04.2017
Сообщений: 26
23.04.2017, 13:30 3
TimeTwo, Прошу прощения за вопрос, а у вас нет еще кодов для задач из этих лаб?
0
101 / 94 / 104
Регистрация: 29.11.2009
Сообщений: 407
23.10.2017, 15:36 4
Вот, все что есть.
Лучше поздно чем никогда...
Вложения
Тип файла: rar stud.rar (338.7 Кб, 8 просмотров)
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
29983 / 16461 / 3332
Регистрация: 12.02.2012
Сообщений: 27,379
Записей в блоге: 5
23.10.2017, 16:01 5
TimeTwo, код - полный отстой! 1) параллельная рекурсия при вычислении числа Фибоначчи будет очень сильно тормозить... но 2) в строках 20 и 21 происходит еще одно тупое перевычисление. и 3) - вишенка на торте - цикл до 500 (стр. 19). Если код рассчитан на проверку до 500-го числа, то автору неплохо было бы (на бумажке, на калькуляторе) вычислить 500-е число Фибоначчи. Могу помочь:

F500=13942322456169788013972438287040728395007025658769730726410 8962948325571622863290691557658876222521294125 Интересно: а) уместится ли это значение в тип int и б) сколько времени программа (даже на C++!) будет его вычислять? В действительности программа либо зациклится, либо упадет из-за переполнения стека.

Не позорь МИРЭА! Вот нормальный код:

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
#include <cstdlib>
#include <iostream>
using namespace std;
int cFib(int A)
{
     int t,i=1,c=1,p=1;
     while (1)
     {
          if (A>p && A <=c) return i;
          t=c;
          c=p+c;
          p=t;
          i++;
     }    
}     
int main(int argc, char *argv[])
{
    int A;
    cout << "A=";
    cin >> A;
    cout << "Fib num=" << cFib(A) << endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.10.2017, 16:01

По числу Фибоначи найти его номер в последовательности Фибоначи в BigInteger
По числу Фибоначи найти его номер в последовательности Фибоначи в BigInteger. Написал для int, но...

Найти все нечетные числа последовательности Фибоначи, не превышающие заданного числа
Помогите пожалуйста! Языки Си. Найти все нечетные числа последовательности Фибоначи, не...

Определить член фибоначи, которрый больше заданного числа Х
числа фибоначи определяются по следующему закону a1=1, a2=1, an+1=an+an-1. Определить член...

Найти номер первого элемента меньше заданного числа а.
Дан массив, упорядочить по убыванию. Найти номер первого элемента меньше заданного числа а.


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.