uint64_t num1 = 0;
uint64_t num2 = 1;
uint64_t num3;
int count = 0;
void setup()
{
Serial.begin( 115200);
Serial.println( "Fibonacci with 64-bit integers");
pinMode( 13, OUTPUT);
}
void loop()
{
num3 = num1 + num2;
num1 = num2;
num2 = num3;
Serial.print( count++);
Serial.print( ":");
println64( num3);
if( count >= 94)
{
Serial.println( "Stopped");
while(true)
{
digitalWrite( 13, digitalRead( 13) == HIGH ? LOW : HIGH);
delay( 200);
}
}
}
// print a unsigned 64 bit number as decimal
void println64( uint64_t u)
{
char buffer[25];
buffer[24] = '\0';
for( int i=23; i>=0; i--)
{
int d = (int) (u % 10);
buffer[i] = d + '0';
u /= 10;
}
Serial.println( buffer);
}