Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a program to calculate the Nth number in the Fibonacci Sequence. You may u

ID: 3722907 • Letter: W

Question

Write a program to calculate the Nth number in the Fibonacci Sequence. You may use the any of the frameworks provided on blackboard in the frameworks zip. If you use console 32 or console 64 the correct number must be place in the EAX register before you move 0 into EAX to return from the procedure. The N to select which number in the sequence to calculate must be declared in the data segment for console 32 and console 64 applications. Submissions completed by the end of the second week of the assignment will receive 3 bonus points. Submissions completed by the end of the first week of the assignment will receive an additional 3 bonus points. Submissions that use the Windows 32 or Windows 64 to ask the user for N and display the output will receive an addition 4 bonus points.

#use visual studios console 64

Explanation / Answer

#include <stdio.h>

void multiply(int F[2][2], int M[2][2]);

void power(int F[2][2], int n);

/* function that returns nth Fibonacci number */
int fib(int n)
{
int F[2][2] = {{1,1},{1,0}};
if (n == 0)
return 0;
power(F, n-1);
return F[0][0];
}

/* Optimized version of power() in method 4 */
void power(int F[2][2], int n)
{
if( n == 0 || n == 1)
return;
int M[2][2] = {{1,1},{1,0}};

power(F, n/2);
multiply(F, F);

if (n%2 != 0)
multiply(F, M);
}

void multiply(int F[2][2], int M[2][2])
{
int x = F[0][0]*M[0][0] + F[0][1]*M[1][0];
int y = F[0][0]*M[0][1] + F[0][1]*M[1][1];
int z = F[1][0]*M[0][0] + F[1][1]*M[1][0];
int w = F[1][0]*M[0][1] + F[1][1]*M[1][1];

F[0][0] = x;
F[0][1] = y;
F[1][0] = z;
F[1][1] = w;
}

/* Driver program to test above function */
int main()
{
int n = 9;
printf("%d", fib(9));
getchar();
return 0;
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote