The theory:
In the Fibonacci sequence of numbers, each number is the sum of the previous two numbers, starting with 0 and 1. This sequence begins 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987 .. and so on.
Below is a simple piece of code which will give you the sequence as output.
In the Fibonacci sequence of numbers, each number is the sum of the previous two numbers, starting with 0 and 1. This sequence begins 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987 .. and so on.
Below is a simple piece of code which will give you the sequence as output.
#include<stdio.h>
#include<conio.h>
main()
{
int a=0,b=1,c;
char len;
printf("Enter the length of sequence required ");
scanf("%d",&len);
printf("Sequence starts:: %d %d",a,b);
while(len-->2)
{
printf(" %d",c=a+b);
a=b;
b=c;
}
}
The output:
Enter the length of sequence required 7
Sequence starts:: 0 0 1 2 3 5 8
Sequence starts:: 0 0 1 2 3 5 8
Notes:
This piece of code is only good for a limited number. Below is a sample output of this program giving a not so good output.
Enter the length of sequence required50
Sequence starts:: 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887 9227465 14930352 24157817 39088169 63245986 102334155 165580141 267914296 433494437 701408733 1134903170 1836311903 -1323752223 512559680 -811192543
Sequence starts:: 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887 9227465 14930352 24157817 39088169 63245986 102334155 165580141 267914296 433494437 701408733 1134903170 1836311903 -1323752223 512559680 -811192543
See the problem? Can you guess what has gone wrong here?
If your guess is the data type used in the program, then you are absolutely right.
int can only go so far. For higher ranges of numbers it is advisable to use higher data types like the long, or long double.
The long double may give you output with decimals (which is not what the doctor ordered). Hence, you may use %.0lf instead of simple %lf.
This code can be modified in so many ways. Just use your imagination. Do post your ideas here in the comments section below. You can always contact me. I am happy to help.
Cheers!!!
This code can be modified in so many ways. Just use your imagination. Do post your ideas here in the comments section below. You can always contact me. I am happy to help.
Cheers!!!
No comments:
Post a Comment