C++  Write a recursive program that finds out if n is a Fibonacci number or not. The Fibonacci numbers are0 1  1          2          3          5          8          13        21        … Your program should have the following interface: Enter a number (enter a negative number to quit): 14!!!!! Sorry14 is not a Fibonacci number Enter a number (enter a negative number to quit): 13Yes, you got it, 13 is a Fibonacci number Enter a number (enter a negative number to quit): 22!!!!! Sorry 22 is not a Fibonacci number Enter a number (enter a negative number to quit): 23!!!!! Sorry 23 is not a Fibonacci number Enter a number (enter a negative number to quit): 21Yes, you got it, 21 is a Fibonacci number Enter a number (enter a negative number to quit):  -1 (*Thanks – Have a good Day*)

Question
Asked Oct 30, 2019

C++ 

 

Write a recursive program that finds out if n is a Fibonacci number or not. The Fibonacci numbers are

0 1  1          2          3          5          8          13        21        …

 

Your program should have the following interface:

 

Enter a number (enter a negative number to quit): 14

!!!!! Sorry14 is not a Fibonacci number

 

Enter a number (enter a negative number to quit): 13

Yes, you got it, 13 is a Fibonacci number

 

Enter a number (enter a negative number to quit): 22

!!!!! Sorry 22 is not a Fibonacci number

 

Enter a number (enter a negative number to quit): 23

!!!!! Sorry 23 is not a Fibonacci number

 

Enter a number (enter a negative number to quit): 21

Yes, you got it, 21 is a Fibonacci number

 

Enter a number (enter a negative number to quit):  -1

 

(*Thanks – Have a good Day*)

check_circleExpert Solution
Step 1

The C++ program will follow the given rubrics:

  • Importing header files.
  • Displaying the message to user to enter a number.
  • Taking input of number from user.
  • If the entered number is negative then terminating the program by using, exit (0) statement.
  • If the entered number is valid Fibonacci number, then displaying the number with proper given message.
  • If the entered number is equal to 0 or 1, then display that it is a Fibonacci number.
  • Else computing the number by putting it in the while loop,

And moving the loop till the value of num2(which is equal to 1 initially) become less than or equal to the user entered value, completing the processing of loop and in last checking that the value of num2 is equal to user entered number or not if yes, then it is a Fibonacci number. Otherwise, the user entered number is not a Fibonacci number.

  • If the entered number is not a Fibonacci number, then displaying the number with appropriate given message.
Step 2

Program code:

 

#include <iostream>

using namespace std;

//main method

int main()

{

    //variable declaration

        int num, num1 = 0, num2 = 1, temp;

        // getting input from user

       cout<<"Enter a number (enter a negative number to quit): ";

        cin>>num;

        //if the number entered by user is negative then exit the program 

        if (num<0)

        {

            //exit statement

            exit(0);

        }

        // 0 and 1 are fibonacci numbers

        if (num1==num || num2==num)

        {

                cout<<"%d is a fibonacci number\n"<< num;

                return 0;

        }

 

        // checking whether a given number is Fibonacci or not

        while (num2 <= num)

        {

            //assigning the value of second number to temp variable

                temp = num2;

                //assigning the sum value of num1 and num2 to num2

                num2 = num1 + num2;

                //assigning temp varible value to num1

                num1 = temp;

                //if num2 is equal to the number entered by user

                if (num2 == num)

                {

                        break;

                }

        }

        // printing the results

        if (num1==num||num2==num)

        {

            //displaying message to user that entered number is a fibonacci number

           cout<<"Yes, you got it, " <<num<< " is a Fibonacci number";      

        }

        else

        {

            //displaying message to user that the entered number is not a fibonacci number

                cout<<"!!!!! Sorry "<<num <<" is not a Fibonacci number";

        }

        return 0;

  }

Step 3

Output of the above given program code:

1) If user ente...

Enter a number (enter a negative number to quit): 14
Sorry 14 is not a Fibonacci number
help_outline

Image Transcriptionclose

Enter a number (enter a negative number to quit): 14 Sorry 14 is not a Fibonacci number

fullscreen

Want to see the full answer?

See Solution

Check out a sample Q&A here.

Want to see this answer and more?

Solutions are written by subject experts who are available 24/7. Questions are typically answered within 1 hour*

See Solution
*Response times may vary by subject and question
Tagged in

Engineering

Computer Science

Programing Language

Related Computer Science Q&A

Find answers to questions asked by student like you

Show more Q&A add
question_answer

Q: 4.7: Time Machine Your time machine is capable of going forward in time up to 24 hours. The machine ...

A: Program Instructions:Take the time in int variables and store extra symbols in the char extra.Pass t...

question_answer

Q: What folder contains group policy templates, logon/logoff scripts, and DFS synchronization data? Gro...

A: “System Volume (SYSVOL)” folder contains group policy templates, logon scripts, and Distributed File...

question_answer

Q: Then create a new Java application called "Rooter" (without the quotation marks) that does the follo...

A: This JAVA program accepts a positive integer as input and gives the square root up to 4 places of in...

question_answer

Q: Consider the sender A transmits 12 data packets to B using stop wait 3rd packet is lost while transm...

A: In stop wait protocol, both the sender and receiver have a windows size of one. The lost packets in ...

question_answer

Q: Design a reasonably efficient algorithm for solving each of the following problems and determine its...

A: AlgorithmLet x be one of the numbers and the other number is n-x. The first step is to maximize f(x)...

question_answer

Q: What trade-offs are involved in building highly distributed data environments?

A: Trade-offs that are involved in building highly distributed data environments: 1) Availability,  2) ...

question_answer

Q: Create a new file (in Dev C++)  In Lab 2, you created a menu for a simple calculator program. In Lab...

A: Program AlgorithmDeclare the required variables and write a welcome message before starting the menu...

question_answer

Q: Who is Alan Turnig ?

A: Alan Turing was born in the year 1912 and died in the year 1954. He was a mathematician, computer sc...

question_answer

Q: Write an expression using membership operators that prints "Special number" if special_num is one of...

A: Python Program:#Declare and initialize the variablespecial_list = [-99, 0, 44]#Prompt the user to gi...