Skip to content

Commit adcb3f2

Browse files
committed
finally 104-fibonacci.c has been added :)
1 parent 28f148c commit adcb3f2

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#include <stdio.h>
2+
3+
/**
4+
* main - prints the first 50 Fibonacci numbers.
5+
*
6+
* Return: Always success (0).
7+
*/
8+
int main(void)
9+
{
10+
long int firstNum = 1;
11+
long int secondNum = 2;
12+
long int sum, sumNdHalf, num1StHalf, num1NdHalf, num2StHalf, num2NdHalf;
13+
int overflow, safe, n;
14+
15+
overflow = safe = 0;
16+
printf("%ld, %ld", firstNum, secondNum);
17+
for (n = 0; n < 96; n++)
18+
{
19+
if (overflow == 0)
20+
{
21+
sum = firstNum + secondNum;
22+
printf(", %ld", sum);
23+
firstNum = secondNum;
24+
secondNum = sum;
25+
if ((firstNum + secondNum) < 0)
26+
overflow = 1;
27+
}
28+
else
29+
{
30+
if (safe == 0)
31+
{
32+
num1NdHalf = firstNum % 1000000000;
33+
num2NdHalf = secondNum % 1000000000;
34+
num1StHalf = firstNum / 1000000000;
35+
num2StHalf = secondNum / 1000000000;
36+
safe = 1;
37+
}
38+
sumNdHalf = num1NdHalf + num2NdHalf;
39+
sum = num1StHalf + num2StHalf + (sumNdHalf / 1000000000);
40+
printf(", %ld%ld", sum, sumNdHalf % 1000000000);
41+
num1NdHalf = num2NdHalf;
42+
num1StHalf = num2StHalf;
43+
num2NdHalf = sumNdHalf % 1000000000;
44+
num2StHalf = sum;
45+
}
46+
}
47+
printf("\n");
48+
return (0);
49+
}

0 commit comments

Comments
 (0)