Рубрики

Программа на C ++ Как проверить, является ли данное число числом Фибоначчи?

Учитывая число 'n', как проверить, является ли n числом Фибоначчи . Первые несколько чисел Фибоначчи 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 141, ..

Примеры :

Input : 8
Output : Yes

Input : 34
Output : Yes

Input : 41
Output : No

Ниже приводится интересное свойство о числах Фибоначчи, которое также можно использовать для проверки, является ли данное число Фибоначчи или нет.
Число есть число Фибоначчи тогда и только тогда, когда один или оба из (5 * n 2 + 4) или (5 * n 2 — 4) являются идеальным квадратом (Источник: Wiki ).

// C ++ программа для проверки, является ли х идеальным квадратом
#include <iostream>
#include <math.h>

using namespace std;

  
// Вспомогательная функция, которая возвращает true, если x - идеальный квадрат

bool isPerfectSquare(int x)

{

    int s = sqrt(x);

    return (s * s == x);

}

  
// Возвращает true, если n - число Фибиначи, иначе false

bool isFibonacci(int n)

{

    // n - это число Фибиначи, если один из 5 * n * n + 4 или 5 * n * n - 4 или оба

    // является идеальным квадратом

    return isPerfectSquare(5 * n * n + 4) || isPerfectSquare(5 * n * n - 4);

}

  
// Утилита для проверки вышеуказанных функций

int main()

{

    for (int i = 1; i <= 10; i++)

        isFibonacci(i) ? cout << i << " is a Fibonacci Number \n"

                       : cout << i << " is a not Fibonacci Number \n";

    return 0;

}

Выход:

1 is a Fibonacci Number 
2 is a Fibonacci Number 
3 is a Fibonacci Number 
4 is a not Fibonacci Number 
5 is a Fibonacci Number 
6 is a not Fibonacci Number 
7 is a not Fibonacci Number 
8 is a Fibonacci Number 
9 is a not Fibonacci Number 
10 is a not Fibonacci Number

Пожалуйста, обратитесь к полной статье о том, как проверить, является ли данное число числом Фибоначчи? Больше подробностей!

Рекомендуемые посты:

Программа на C ++ Как проверить, является ли данное число числом Фибоначчи?

0.00 (0%) 0 votes