T
Tarique
This program was compiled on MS Visual C++ 08
/*Fibonacci Numbers*/
#include<stdio.h>
#include<limits.h>
void fibonacci(int n)
{
unsigned long long fib0 = 0; /*First Fibonacci Number*/
unsigned long long fib1 = 1; /*Second Fibonacci Number*/
unsigned long long fibn = 1; /*Nth Fibonacci Number*/
int count = 3; /*Hold Count*/
printf(" 1 :%25llu \n 2 :%25lld \n",fib0,fib1);
while(count <= n )
{
fibn = fib0 + fib1 ;
if((fibn < 0) || (fibn > ULLONG_MAX)){
puts("\nOverflow\n");
break;
}
printf("%3d :%25llu \n",count,fibn);
fib0 = fib1;
fib1 = fibn;
count++;
}
return ;
}
int main(void)
{
unsigned long temp = 0;
puts("Fibonacci Numbers");
fibonacci(100); /*Print the first 100 Fibonacci Numbers*/
return 0;
}
This is a part of the output :
Fibonacci Numbers
...snip...
90 : 1779979416004714189
91 : 2880067194370816120
92 : 4660046610375530309
93 : 7540113804746346429
94 : 12200160415121876738
95 : 1293530146158671551
96 : 13493690561280548289
97 : 14787220707439219840
98 : 9834167195010216513
99 : 6174643828739884737
100 : 16008811023750101250
Why are the numbers after 95th Fibonacci numbers (including it) wrong?
/*Fibonacci Numbers*/
#include<stdio.h>
#include<limits.h>
void fibonacci(int n)
{
unsigned long long fib0 = 0; /*First Fibonacci Number*/
unsigned long long fib1 = 1; /*Second Fibonacci Number*/
unsigned long long fibn = 1; /*Nth Fibonacci Number*/
int count = 3; /*Hold Count*/
printf(" 1 :%25llu \n 2 :%25lld \n",fib0,fib1);
while(count <= n )
{
fibn = fib0 + fib1 ;
if((fibn < 0) || (fibn > ULLONG_MAX)){
puts("\nOverflow\n");
break;
}
printf("%3d :%25llu \n",count,fibn);
fib0 = fib1;
fib1 = fibn;
count++;
}
return ;
}
int main(void)
{
unsigned long temp = 0;
puts("Fibonacci Numbers");
fibonacci(100); /*Print the first 100 Fibonacci Numbers*/
return 0;
}
This is a part of the output :
Fibonacci Numbers
...snip...
90 : 1779979416004714189
91 : 2880067194370816120
92 : 4660046610375530309
93 : 7540113804746346429
94 : 12200160415121876738
95 : 1293530146158671551
96 : 13493690561280548289
97 : 14787220707439219840
98 : 9834167195010216513
99 : 6174643828739884737
100 : 16008811023750101250
Why are the numbers after 95th Fibonacci numbers (including it) wrong?