# Getting started with C++

This post is a rough translation from german to english and is based on this post: Mein Einstieg in C++.

In order to get started with C++ i decided to have a look at problem #2 on projecteuler.net.
A description of the problem can be found here.

Basically, you have to find the sum of all even-valued terms in the fibonacci sequence which do not exceed four million. Sounds easy, doesn’t it?

Here’s how i solved it.

In order to get a specific fibonacci number I used a formula made by Moivre-Binet.

What is amazing about this formula, is that it uses three square roots and still returns integer numbers. Don’t believe me? I couldn’t really believe it either so i simply implemented it in C++:

``````double getNthFibonacci(double n)
{
double out;
out = 1/sqrt(5.0) * (pow(((1+sqrt(5.0))/2), n)
- pow(((1-sqrt(5.0))/2), n));
return out;
}
``````

The rest is relativley simple. Just check if the returned number is even-valued and less than four million. If that’s the case, add the number to the sum variable.

``````int _tmain(int argc, _TCHAR* argv[])
{
double Fib = 0;
double sum = 0;
int i = 1;

while(true)
{
Fib = getNthFibonacci(i);
if(Fib < = 4000000)
{
if((int)Fib % 2 == 0)
{
sum += Fib;
}
i++;
}
else
break;
}

cout << "Sum: " << sum;
cin.get();

return 0;
}
``````

While the formula of Moivre-Binet might not be very efficient it’s quite interesting that it returns integer numbers.

11 Dec 2010