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("\nOverflo w\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 : 177997941600471 4189
91 : 288006719437081 6120
92 : 466004661037553 0309
93 : 754011380474634 6429
94 : 122001604151218 76738
95 : 129353014615867 1551
96 : 134936905612805 48289
97 : 147872207074392 19840
98 : 983416719501021 6513
99 : 617464382873988 4737
100 : 160088110237501 01250
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("\nOverflo w\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 : 177997941600471 4189
91 : 288006719437081 6120
92 : 466004661037553 0309
93 : 754011380474634 6429
94 : 122001604151218 76738
95 : 129353014615867 1551
96 : 134936905612805 48289
97 : 147872207074392 19840
98 : 983416719501021 6513
99 : 617464382873988 4737
100 : 160088110237501 01250
Why are the numbers after 95th Fibonacci numbers (including it) wrong?
Comment