Предмет: Информатика, автор: gloomder

ЯЗЫК : С++
Номер числа Фибоначчи
Последовательность Фибоначчи определяется так:

ϕ0=0,ϕ1=1,ϕn=ϕn−1+ϕn−2
Дано натуральное число A. Определите, каким по счету числом Фибоначчи оно является, то есть выведите такое число n, что ϕn=A. Если A не является числом Фибоначчи, выведите число −1.

Входные данные

Вводится натуральное число A (2≤A≤2∗109).

Выходные данные

Выведите ответ на задачу.

Примеры

Ответы

Автор ответа: vimmortal2
1

Программа:

C++:

#include <iostream>

using namespace std;

int main()

{

   int A;

   cout << "A = "; cin >> A;

   int fib1 = 0, fib2 = 1, fibS = 1, n = 0, result = -1;

   

   while (fib1 <= A) {

       fibS = fib1 + fib2;

       fib1 = fib2;

       fib2 = fibS;

       n += 1;

       if (fib1 == A) result = n;

       else if (A == 0) result = 0;

   }

   cout << result + 1;

}

Автор ответа: lozromanik
0

Відповідь:

#include<iostream>

#include<cmath>

int main(){

int a1=0,a2=1,A,count=2;

std::cin>>A;

for(;;){

 a2+=a1;

 if(A==a2){

 std::cout<<count;

 break;

 }

 else if(a2<A){

  count++;

  std::swap(a1,a2);

  continue;

 }

 else{

  std::cout<<-1;

  break;

 }

}

return 0;

}

Похожие вопросы
Предмет: География, автор: MasterVsemogushiy