Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Student3194
0 / 0 / 0
Регистрация: 13.11.2013
Сообщений: 6
#1

Числа Фибоначчи.Определение порядкового номера элемента - C++

13.11.2013, 17:39. Просмотров 1029. Ответов 9
Метки нет (Все метки)

Дано положительное число.Найти номер К такого числа Фибоначчи ,что Xк-1<=A<Xк.Протестировать задачу для значений A 4,51,21.

Числа Фибоначчи Х1=1, Х2=1, Х3=2 ,...,Хк=Хк-1 + Хк-2.

По форуму искал подобных задач не нашел.Только кучу задач с определением числа Фибоначчи по его номеру...Помогите пожалуйста ,последняя задача в лабе осталась.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2013, 17:39     Числа Фибоначчи.Определение порядкового номера элемента
Посмотрите здесь:

Определение члена ряда Фибоначчи C++
C++ Распечатать те элементы порядковые номера которых - числа Фибоначчи; определить количество перемен знаков
C++ Запрос вывода порядкового номера каждой записи таблицы
C++ сформируйте и выведите на экран массив из n элементов, где каждый элемент массива равен произведению двух предыдущих и его порядкового номера
C++ Составить программу, которая в зависимости от порядкового номера месяца выводит на экран количество дней в этом месяце
C++ В зависимости от порядкового номера месяца вывести на экран его название.
C++ Составить программу, которая в зависимости от порядкового номера месяца выводит на экран количество дней в этом месяце
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ПерС
366 / 282 / 84
Регистрация: 05.11.2013
Сообщений: 809
Записей в блоге: 5
Завершенные тесты: 1
13.11.2013, 17:44     Числа Фибоначчи.Определение порядкового номера элемента #2
числа Фибоначчи на С++
Student3194
0 / 0 / 0
Регистрация: 13.11.2013
Сообщений: 6
13.11.2013, 17:55  [ТС]     Числа Фибоначчи.Определение порядкового номера элемента #3
Это программа чтобы по номеру элемента определить число фибоначчи.А мне нужно найти НОМЕР Хк-ого элемента, чтобы оно выполняло условие Xк-1<=A<Xк.
ПерС
366 / 282 / 84
Регистрация: 05.11.2013
Сообщений: 809
Записей в блоге: 5
Завершенные тесты: 1
13.11.2013, 18:12     Числа Фибоначчи.Определение порядкового номера элемента #4
Цитата Сообщение от Student3194 Посмотреть сообщение
Это программа чтобы по номеру элемента определить число фибоначчи.А мне нужно найти НОМЕР Хк-ого элемента, чтобы оно выполняло условие Xк-1<=A<Xк.
ну и найди, используя функцию поиска числа
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
 
long int fibo (int n) {
 if (n==0) return 0;
 else if (n==1) return 1;
 else return (fibo(n-1)+fibo(n-2));
}
 
void main () {
 int a,n=1,xk,xk1;
 cout << "Введите число A ";
 cin >> a;
 while (1) {
  xk1=fibo(n);
  xk=fibo(n+1);
  if (xk1<=a && a<xk)
  break;
  n++;
 }
 cout << "N=" << n ;
}
Student3194
0 / 0 / 0
Регистрация: 13.11.2013
Сообщений: 6
13.11.2013, 18:16  [ТС]     Числа Фибоначчи.Определение порядкового номера элемента #5
Спасибо огромное!
Байт
Эксперт C
15264 / 9666 / 1434
Регистрация: 24.12.2010
Сообщений: 17,999
13.11.2013, 18:29     Числа Фибоначчи.Определение порядкового номера элемента #6
C++
1
2
double fi = (1 + sqrt(5.0))/2, fin=1;
for (n=1;fin < A;fin *= fi, n++);
работает для не очень маленьких A. Для маленьких (до 5, кажется), можно проверить вручную. Типа
C++
1
2
3
4
if (A==1) n=1
else if (A==2) n = 3;
else if (A==3 || A==4) n = 4;
else // предыдущий код
Kuzia domovenok
1887 / 1742 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 1
13.11.2013, 18:34     Числа Фибоначчи.Определение порядкового номера элемента #7
Student3194, за такое тормозное подобие алгоритма спасибо не говорят.
Зачем числа Фибоначи считать рекурсивно? Рекурсия для этой задачи хороша лишь для демонстрации самой темы "рекурсия", а в цикле их считать не только лучше и быстрее,
Но ещё и не придётся как у него тыщу раз пересчитывать одни и те же числа!
Ты хоть понимаешь, что , вызывая fibo (int n) в цикле, ты будешь обречён тратить время на пересчитывание тех же чисел, что были расчитаны ранее!!! И так на каждом витке цикла!

Короче,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream.h>
int main () {
 long a,K=1,xk,xk1;
 cout << "Введите число A ";
 cin >> a;
 if (a==1) cout<<"K=2";
 xk1=2;
 xk=3;
 K=4;
 while (a<xk1) {
    xk1 ^= (xk2 ^= (xk1 ^= xk2));
    xk2+=xk1;
    K++;
 }
 cout << "K=" << K ;
 return 0;
}
ПерС
366 / 282 / 84
Регистрация: 05.11.2013
Сообщений: 809
Записей в блоге: 5
Завершенные тесты: 1
13.11.2013, 18:41     Числа Фибоначчи.Определение порядкового номера элемента #8
меньше выпендрёжа, мохнатый.
за побитовые операции студентам, которые их не знают, тоже не говорят спасибо.
напиши так, если не спится:
C++
1
2
3
4
5
6
7
8
9
long int fibo (int n) {
 long int f0=0,f1=1,f2=1;
 for (long int i=0; i<n; i++) {
  f2=f1+f0;
  f1=f2;
  f0=f1;
 }
 return f2;
}
Kuzia domovenok
1887 / 1742 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 1
13.11.2013, 18:47     Числа Фибоначчи.Определение порядкового номера элемента #9
Цитата Сообщение от ПерС Посмотреть сообщение
f2=f1+f0;
* f1=f2;
* f0=f1;
результат f1=f0=f2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2013, 19:12     Числа Фибоначчи.Определение порядкового номера элемента
Еще ссылки по теме:

Определить номера минимального элемента массива и элемента, являющегося минимальным без учета этого элемента. C++
C++ Определение, является ли заданное число числом Фибоначчи
C++ В зависимости от порядкового номера дня недели вывести на экран его название
C++ Определение номера треугольного числа
C++ При вводе порядкового номера месяца вывести название этого месяца

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

Или воспользуйтесь поиском по форуму:
ПерС
366 / 282 / 84
Регистрация: 05.11.2013
Сообщений: 809
Записей в блоге: 5
Завершенные тесты: 1
13.11.2013, 19:12     Числа Фибоначчи.Определение порядкового номера элемента #10
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
результат f1=f0=f2
а ты местами переставь
C++
1
2
f0=f1;
f1=f2;
Yandex
Объявления
13.11.2013, 19:12     Числа Фибоначчи.Определение порядкового номера элемента
Ответ Создать тему
Опции темы

Текущее время: 13:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru