# How to get Serial print fibonacci numbers

I want to get the vale of 150th fibonacci number into an array.

ex :

150th fibonacci vale is = 9969216677189303386214405760200
I want to input into an array like this,

int myArray={9,9,6,9,2,1,6,6,7,7,1,8,9,3,0,3,3,8,6,2,1,4,4,0,5,7,6,0,2,0,0};

Chose an integer data type with at least 103 binary digits.

You show us first with an Arduino sketch how you are going to get the 150th term of the Fibonacci number sequence? Is it 9969216677189303386214405760200 what you said or it is: 6161314747715278029583501626149?

actually In here 9969216677189303386214405760200 value i got from by using online calculator.
but i want to get the value of 150th fobonacci value using arduino.

Jchandeepa:
actually In here 9969216677189303386214405760200 value i got from by using online calculator.
but i want to get the value of 150th fobonacci value using arduino.

Ok!

Post a simple sketch to find 7 Fibonacci terms. Search Google, get a C program, upload it in the UNO, show the terms in the Serial Monitor, and post the screenshot of the Serial Monitor.

GolamMostafa:
Ok!

Post a simple sketch to find 7 Fibonacci terms. Search Google, get a C program, upload it in the UNO, show the terms in the Serial Monitor, and post the screenshot of the Serial Monitor.

Here is the screenshot of the 7th fibonacci number. thank you.

You were requested to get 7 terms (and not the 7th term) on Serial Monitor like this:

What are the terms in a Fibonacci number sequence?
Ans: Excluding the first two terms, the next term is always equal to the sum of the just preceding two terms.

Use the above principle and write your simple C codes without using recursion.

Really, a screen shot…

But like @ TheMemberFormerlyKnownAsAWOL mentioned, your (first) biggest problem is finding a datatype that actually can hold that number. You need at least 103 bits to do so and that’s not really a trivial size, especially in microcontroller land.

And small calculation:
103 bit = 13 bytes
150 items => 13 bytes x 150 = 1950 bytes
That’s as good as ALL the RAM an Uno has…

GolamMostafa:
You requested to get 7 terms (and not the 7th term) on Serial Monitor like this:

What are the terms in a Fibonacci number sequence?
Ans: Excluding the first two terms, the next term is always equal to the sum of the just preceding two terms.

Use the above principle and write your simple C codes without using recursion.

Simply i want to do this. but i don't know how to do in arduino. because there is no such long data type. here i attached a screenshot. i got if from the online calculator.

Jchandeepa:
I want to input into an array like this,

int myArray={9,9,6,9,2,1,6,6,7,7,1,8,9,3,0,3,3,8,6,2,1,4,4,0,5,7,6,0,2,0,0};

How i do this.?

``````int myArray[]={9,9,6,9,2,1,6,6,7,7,1,8,9,3,0,3,3,8,6,2,1,4,4,0,5,7,6,0,2,0,0};
``````

How does that not do what you want?

Then just use serial.Print inside a for() loop to print each element to the serial port. If that's not what you meant the I don't know what you do mean, sorry.

PerryBebbington:

``````int myArray[]={9,9,6,9,2,1,6,6,7,7,1,8,9,3,0,3,3,8,6,2,1,4,4,0,5,7,6,0,2,0,0};
``````

How does that not do what you want?

Then just use serial.Print inside a for() loop to print each element to the serial port. If that’s not what you meant the I don’t know what you do mean, sorry.

actually here i use only for the example of 150th fibonacci number value (9969216677189303386214405760200). only for the example. in my project the value is more than 150th of fibonacci. thank you.

septillion:
Really, a screen shot....

But like @ TheMemberFormerlyKnownAsAWOL mentioned, your (first) biggest problem is finding a datatype that actually can hold that number. You need at least 103 bits to do so and that's not really a trivial size, especially in microcontroller land.

And small calculation:
103 bit = 13 bytes
150 items => 13 bytes x 150 = 1950 bytes
That's as good as ALL the RAM an Uno has...

I can't clear what y said. so please can you give me some examples for it. any kind of codes do you have?? thank you.

hi… please help me. i’m using this code to get the fibonacci value in selected number. it’s work.
But i want to get the value of 4th digit in result in the left side, as well as the how many digits have this result.

``````#include "BigNumber.h"

// function to display a big number and free it afterwards
void printBignum (BigNumber & n)
{
char * s = n.toString ();
Serial.println (s);
free (s);
}  // end of printBignum

void setup()
{
Serial.begin(9600);
BigNumber::begin ();  // initialize library

int x = 150; // change here

int n = 2;
BigNumber a = 0;
BigNumber b = 1;
BigNumber result;
while (n <= x) // while value do you want
{
result = a + b;
n++;
a = b;
b = result;
}  // end of while
Serial.print (x);
Serial.print (" = ");
printBignum (result);

} // end of setup

void loop()
{

}  // end of loop
``````

To determine how many decimal digits (N) there are in an integer number, count the number of times you can do an integer divide by ten, stopping when the result is zero.

To get the fourth digit from the left (assuming that the number is larger than 999), get the number of digits N as above, then start with the original number and repeat the divide-by-ten process N-3 times. Divide once more by ten and take the remainder.

Have you got the clue of Post#1?

1. Assume the givem number is 12345. Ans: 5.

``````unsigned int x = 12345;
void setup()
{
Serial.begin(9600);

byte counter=0;
do
{
x = x/10;
counter++;
}
while(x !=0);
Serial.print(counter); //shows: 5
}

void loop()
{

}
``````

2. Assume the given number is: 98765. Ans: The forth digit from left is 6.
This is Op's job to devise the sketch.

Jchandeepa

DO NOT CROSS POST.

Bob.

Since the BigNumber representation is based on a character array, there may be faster ways to do what you want.

Doing so will require you to study and understand the library code.

Thank you all of you guys gave me the replies..
yes i want to get the how many digit in the value. but i'm trouble with the big number. in my result there are about 40 numbers. i cant convert into int value, can you tell me what's the data type of bignumber result.
result is here:
150`th` of fibonacci value is : 9969216677189303386214405760200

can you tell me what's the data type of bignumber result.

As jremington said

Since the BigNumber representation is based on a character array

From my look at the library, I think that the result is a null terminated character array.

how i get the 3rd number(6) value.??

result[2] will be 6. Note that the array index starts from 0.

as well as the how many digits have this result.

Iterate over the array looking for a match.

``````int countMatch(char* num, byte position)
{
int i = 0;
int count = 0;
while (num[i] != '\0')
{
if (num[i] == num[position-1])
count++;
i++;
}
return count;
}

void setup() {
Serial.begin(115200);
char * num = "9969216677189303386214405760200";
Serial.println(num);
Serial.print("The third number from left is ");
Serial.println(num[2]);
Serial.print("The number of matches to third number is ");
Serial.println(countMatch(num,3));
}

void loop() {}
``````

So how i get the 3rd number(6) value

That would be the third digit from the left. See reply #1 for the completely general method.